mysqldump 远程备份 mysql

news/2024/9/23 21:04:23

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/63925.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

9.23 csp

今天模拟赛出了四道zroi的题,挺GG的。 T1、奇观 因为删除的边比较少,所以从m入手,f[i][j]表示长度为i,终点为j的链的方案数。 C 是长度为3的链,F是 1条 长度为3 的链 和 2条 长度为2 的链。 输出 CCF 即可 G T2、铁路 救命的签到题。 因为每次合并时每走一个点就会减少一个…

业财一体化视角下-电商ERP采购模块的设计

本文将深入探讨如何在采购模块的设计中有效体现业财一体化理念,从财务三大报表的基本概念出发,详细解析采购过程中的财务管理关键要素,并分享采购流程设计中应注意的重点,以期为企业提供有价值的参考和指导。业财一体化的重要性日益凸显,越来越多企业认识到业务运营与财务管…

第二十三讲:MySQL是怎么保证主备一致的?

第二十三讲:MySQL是怎么保证主备一致的? 简概开篇 ​ 在前面的文章中,我不止一次地和你提到了 binlog,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。毫…

破防了,遂刷一节课圆锥曲线放松大脑,原因如图

来个有缘人 #include<bits/stdc++.h> using namespace std; #define int __int128 void _print(__int128 x,bool first=true){if(x<0){putchar(-);_print(-x,false);return;}if(x==0){if(first) putchar(0);return;}_print(x/10,false);putchar((int)(x%10)+0); } #de…

9月23日总结

今天上了数据结构课,学习了线性表的增删改查;正式上了第一节Java课,学习了些Java的基本知识,运行了代码,部分运行结果如下:

动手实验 1

请运行以下代码(TestDouble.java) public class TestDouble { public static void main(String args[]) {System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));System.out.println("4.015 *…

以数赋能实景三维创新“科技+文旅”

在数字化时代,科技与文化的融合为我们带来了无限可能。今天,我们将探讨如何利用实景三维技术,推动“科技+文旅”的创新发展。1. 实景三维技术概述实景三维技术,是一种集成了遥感、地理信息系统(GIS)、三维建模等技术的前沿科技。它能够将现实世界的地理信息以三维形式数字…