MySQL 备份 —— 导出导入 sql 文件

  最近在学习 MySQL 的备份和恢复,我的实际应用场景是正式服数据同步到测试服用于测试、备份生产环境的数据库。

  我的 MySQL 是通过 docker 安装的,非容器的可以执行双引号中的命令;可以通过 ls -lhS 命令在目录下查看是否已存在文件。下方实例中的 123456 为数据库密码,my-database 是数据库名。

一、数据备份

1
docker exec mysql-5.7-backup bash -c "mysqldump -uroot -p123456 my-database > /tmp/my-database.sql"

注意
  -p 后面跟密码,加空格会被识别为 database;也可以不跟密码,回车后输入密码

  导出后的文件还在 docker 容器中,可以通过 docker cp 命令将备份的 sql 文件拷贝到宿主机,便于后面在其他 docker 容器内使用。

1
docker cp mysql-5.7:/tmp/my-database.sql /opt/

  同时备份多个数据库

1
docker exec mysql-5.7-backup bash -c "mysqldump -uroot -p123456 --databases dbname2 dbname2 > Backup.sql"

二、数据还原

  还原使用 mysqldump 命令备份的数据库,先将导出的 sql 文件通过 docker cp 命令拷贝到备份的 mysql 容器内。

1
docker cp /opt/my-database.sql mysql-5.7-backup:/tmp/

  再进行导入:

1
docker exec mysql-5.7-backup bash -c "mysql -uroot -p123456 my-database < /tmp/my-database.sql"
以上

随笔标题:MySQL 备份 —— 导出导入 sql 文件

随笔作者:刘先玉

发布时间:2024年01月07日 - 21:46:05

最后更新:2024年01月07日 - 21:46:05

原文链接:https://liuxianyu.cn/article/mysqldump.html