1. 备份

备份所有的数据库内容到一个文件中,执行bash命令(注意:对于utf8mb4编码的表,必须加上--default-character-set=utf8mb4):

mysqldump --all-databases --default-character-set=utf8mb4 \
    -u用户名 -p密码 | gzip > mysql_backup.gz

指定导出的数据库,支持多个:

mysqldump --databases db1 db2 db3 # 其它命令跟上

说明:实际上导出的是sql语句的文件,这里只是压索成一个文件。更多mysqldump配置信息

2. 还原

还原数据库,(之前较老版本的mysql要mysql密码后面再空格指定数据库名,但现在测试的5.6不需要。同时老版本可能需要事先建好数据库,限制测试mysql8.0不需要):

gunzip < mysql_backup.gz  | mysql -u用户名 -p密码

还原数据库可多次执行,数据库表会被覆盖:比备份多的行会被删除,比备份多的表不会被删除。

对于utf8mb4编号,还原数据库后,客户端要重新连接才能让utf8mb4编码生效。

(可选)使用SQLyog可视化客户端进行备份和还原

如果没有命令行工具,可以使用SQLYog之类的客户端进行备份和还原,这里以SQLYog为例:

备份

右键选中要备份的数据库实例,选择“计划备份”,在选项中,可以选择包含mysql系统的数据,也可以选择不含mysql系统的,也可以指定某个数据库。然后一直下一步,保存为zip文件。实际上zip文件中是一个sql文件。

还原

将zip文件中的sql文件解压出来。然后在新的数据库上右键,选择“执行SQL脚本”,再选择解压出来的sql文件即可。

说明 有时会碰到use xxx或其它的错误,这时候就需要先手动创建数据库。

文档更新时间: 2018-12-25 16:37   作者:nick