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/*.sqlmysqldump -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.cnf2.在[mysqld]这行下面加上 skip_ssl 即可按下esc,输入:wq保存退出3.重启mysql服务即可
解决方案:加上参数 --skip-sslE:\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