mysqldump 远程备份
使用mysqldump进行远程数据库备份,你需要具备远程服务器的访问权限,并且确保远程服务器的MySQL服务允许远程连接。
mysqldump -u root -p password -h 192.168.1.100 mydatabase > backup.sql
mysqldump 指令如下:
mysqldump -h [服务器IP] -P [mysql端口号] -u [用户名] -p[密码] [数据库名称]> /data/backup/backup_pro.sql
mkdir -p /data/backup/
rm -rf /data/backup/*.sql
mysqldump -h 192.168.10.91 -P 13307 -u user_mz -p12345678 db_pro> /data/backup/backup_pro.sql
可能会出现权限不足的情况,比如防火墙、端口号访问限制,或者mysql连接权限不足等情况
=======================================================
mysqldump异地备份数据库 mysqldump备份远程数据库
Mysqldump远程备份mysql数据库
mysqldump是备份mysql数据库的一种好工具。它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以结合计划任务实现定时远程备份数据库。
操作用mysqldump备份数据库的用户需要的权限比较小,只需要select和lock table的权限就足够了。所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏。
在备份数据库之前我们要做足准备功夫,首先创建了执行备份操作的数据库用户:backup,密码为:123456。其次,确定我们要备份哪个数据库,放在哪里。然后,确定数据库的备份文件要放到哪里。
假设我们的任务是要备份一个位于192.168.1.2服务器上,名称为backup_test的数据库,并把备份文件放到D:\bak\的文件夹中。又假设我们的操作系统为windows xp,于是我们可以用以下的方法执行备份操作:
我们可以使用windows自带的命令提示符(调用命令提示符的方法有多种,最常用的就是点击开始菜单,选择“运行”,输入cmd的命令就可以启动了),在命令提示符中输入以下命令:
mysqldump -ubackup -p123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql
在这段命令中:
mysqldump是myqldump的程序名了;
-u是数据库的用户名,后面紧跟着用户名backup;
-p是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格;
-h是数据库的地址,如果没有此项表明是备份本地的数据库;
backup_test是要备份的数据库名称;
>表明该数据库备份到后面的文件,紧跟当然是备份文件的地址了,注意要用绝对文件路径,文件的后缀也可以用.txt。
一旦执行该命令后,mysqldump立即执行备份操作。远程备份数据库要似乎网络的情况,一般远程备份需要一定的时间的。
如果把这个命令写成批处理文件,通过windows的计划任务可以实现定时备份数据。
在windows下用mysqldump备份数据库,因为没有gzip的压缩引擎,因此不能对备份数据库进行压缩,因此如果备份文件多了要经常清理过期的数据库备份文件。
=======================================================
mysqldump: [Warning] Using a password on the command line interface can be insecure.
报错解释:
这个警告是MySQL的mysqldump工具发出的,表示您在命令行中直接使用了密码。这样做可能会有安全风险,因为命令行历史会保留这些密码,其他用户可能会看到它们,并且在shell脚本中直接包含密码可能会导致安全隐患。
解决方法:
最安全的方法是使用MySQL的身份验证插件(如auth_socket或caching_sha2_password),并配合mysqldump的--socket选项,以便使用UNIX socket文件进行身份验证,而不是在命令行中传递密码。
另一种方法是使用--login-path选项,它允许你在~/.mylogin.cnf文件中安全地储存登录凭证,而不是在命令行中直接输入密码。
如果你必须在命令行中使用密码,可以使用-p选项,但紧随其后指定密码,这样密码就不会保留在命令行历史中:
mysqldump -u username -pYourPassword database_name
=======================================================
mysqldump: Got error: 2026: SSL connection error: protocol version mismatch when trying to connect
错误解释:
这个错误表明在使用mysqldump进行数据库备份时,客户端和MySQL服务器之间的SSL连接出现了协议版本不匹配的问题。这通常发生在客户端尝试使用的SSL/TLS协议版本高于服务器支持的版本时。
解决方法:
检查MySQL服务器支持的SSL/TLS版本:
你可以通过查看MySQL的系统变量tls_version来了解服务器支持的TLS版本。
SHOW VARIABLES LIKE 'tls_version';
mysql> SHOW VARIABLES LIKE 'tls_version'; +---------------+-----------------------+ | Variable_name | Value | +---------------+-----------------------+ | tls_version | TLSv1,TLSv1.1,TLSv1.2 | +---------------+-----------------------+ 1 row in set (0.01 sec) mysql>
更新客户端:
如果客户端(如mysqldump工具)的TLS版本太低,可能需要更新到支持较新TLS版本的版本。
配置服务器:
如果服务器不支持你需要的TLS版本,你可以通过修改MySQL的配置文件来启用更高的TLS版本。编辑my.cnf或my.ini文件,在[mysqld]部分添加或修改以下行:
tls_version = TLSv1.2
根据需要替换TLSv1.2为服务器支持的其他版本。
重启MySQL服务:
在修改配置文件后,需要重启MySQL服务以使更改生效。
使用兼容的客户端设置:
如果你不能更改服务器设置,可以尝试在mysqldump命令中添加参数来指定使用兼容的TLS版本。
方法一: 在/etc/my.cnf配置文件里添加一行:skip_ssl
方法二:命令行启动添加 --skip-ssl 参数,即 mysql -uroot -p -h 192.168.0.157 --skip-ssl
方法三:命令行启动添加 --ssl-mode 参数,即 mysql -uroot -p -h 192.168.0.157 --ssl-mode=DISABLED
在mysql 8里比较推荐 方法三 方法。
参数–ssl-mode取值
DISABLED :与参数skip-ssl一样,不使用SSL/TLS建立加密连接
PREFERRED :优先尝试使用SSL/TLS建立加密连接,如果无法建立则尝试建立非SSL/TLS连接
REQUIRED :只会尝试使用SSL/TLS建立加密连接
VERIFY_CA: 与REQUIRED行为一样,与此同时会验证server端的证书是否有效
VERIFY_IDENTITY: 与VERIFY_CA行为一样,与此同时验证server端证书的host是否与实际连接的hostname一致
解决办法:
1、找到mysql的配置文件my.cnf
2.在[mysqld]这行下面加上 skip_ssl 即可
按下esc,输入:wq保存退出
3.重启mysql服务即可
解决方案:加上参数 --skip-ssl
E:\tools\mysql-5.7.38-winx64\bin\mysqldump --skip-ssl -h%host% -P%port% -u%user% -p%pass% -R -B -c --add-drop-table
可行:
mysqldump --ssl-mode=DISABLED -u root -pPASSWORD -h SERVER_IP_ADDRESS DATBASENAME > backup20240923vtest.sql
=======================================================
REF
https://blog.51cto.com/u_16213719/11420358
https://cloud.tencent.com/developer/article/2437394
http://www.360doc.com/content/23/1210/15/74661_1107055433.shtml
标签:TLS,备份,mysqldump,mysql,backup,数据库 From: https://www.cnblogs.com/emanlee/p/18427797