我们在安装 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 | -h | IP地址 |
--port | -P | 端口号 |
--user | -u | MySQL 用户名 |
--pasword | -p | MySQL 密码 |
--databases | 指定要备份的数据库,可逗号指定多个数据库 | |
--all-databases | 备份所有数据库 | |
--compact | 压缩模式,产生更少的输出 | |
--comments | 添加注释信息 | |
--complete-insert | 输出完成的插入语句 | |
--lock-tables | 备份前,锁定所有数据库表 | |
--no-create-db | 取消创建数据库sql | |
--no-create-info | 取消创建数据表sql | |
--force | 当出现错误时仍然继续备份操作 | |
--default-character-set | 指定默认字符集 | |
--add-locks | 备份数据库表时锁定数据库表 |