MySQL 数据库备份

80 阅读2分钟

我们在安装 MySQL 的时候,都会附带安装 mysqldump 工具

我们可以使用它对数据库进行备份和恢复

把服务器上的MySQL备份到本地

备份所有数据库

格式:

mysqldump -h 服务器IP -u 用户名 -p'密码' --all-databases > /本地路径/文件名.sql

示例:

mysqldump -h 159.1.1.3 -u root -p'pwd_88' --all-databases > /daecoding/all-database-20230427.sql

备份指定数据库

格式:

mysqldump -h 服务器IP -u 用户名 -p'密码' --databases 数据库名,数据库名 > /本地路径/文件名.sql

示例:

mysqldump -h 159.1.1.3 -u root -p'pwd_88' --databases test1 > /daecoding/test1-20230427.sql
mysqldump -h 159.1.1.3 -u root -p'pwd_88' --databases test1, test2 > /daecoding/test1-test2-20230427.sql

经过实测,如果本地数据库版本和服务器上的数据库版本不一致,那么可能出现以下错误

mysqldump: Got error: 2026: SSL connection 
error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol when trying to connect

这是因为本机安装的是MySQL8.0,而服务器上的是MySQL5.7,MySQL8.0已经升级了更严格的OpenSSL3.0,导致它们的密码验证方式不一致。出现这个情况,我们可以到服务器上对数据库进行备份,然后下载下来,参考以下。

对本机的MySQL进行备份

备份所有数据库

格式:

mysqldump -u 用户名 -p'密码' --all-databases > /存放路径/文件名.sql

示例:

mysqldump -u root -p'pwd_88' --all-databases > /daecoding/all-database-20230427.sql

备份指定数据库

格式:

mysqldump -u 用户名 -p'密码' --databases 数据库名,数据库名 > /存放路径/文件名.sql

示例:

mysqldump -u root -p'pwd_88' --databases test1 > /daecoding/test1-20230427.sql
mysqldump -u root -p'pwd_88' --databases test1, test2 > /daecoding/test1-test2-20230427.sql

mysqldump 常用参数表

参数名缩写含义
--host-hIP地址
--port-P端口号
--user-uMySQL 用户名
--pasword-pMySQL 密码
--databases指定要备份的数据库,可逗号指定多个数据库
--all-databases备份所有数据库
--compact压缩模式,产生更少的输出
--comments添加注释信息
--complete-insert输出完成的插入语句
--lock-tables备份前,锁定所有数据库表
--no-create-db取消创建数据库sql
--no-create-info取消创建数据表sql
--force当出现错误时仍然继续备份操作
--default-character-set指定默认字符集
--add-locks备份数据库表时锁定数据库表