服务器在使用了 Docker 后,对于备份和恢复数据库的事情做下记录:
由于 docker 不是实体,所以要把mysql的数据库导出到物理机上,命令如下:
- 查看下 mysql 运行名称
docker ps
结果:

- 执行导出(备份)数据库命令:
由第一步的结果可知,我们的 mysql 运行在一个叫 mysql_server 的 docker 容器中。而我们要备份的数据库就在里面,叫做 test_db。mysql 的用户名密码均为root,我们将文件备份到/opt/sql_bak文件夹下。
docker exec -it mysql_server mysqldump -uroot -proot test_db > /opt/sql_bak/test_db.sql
- 执行导入(恢复)数据库命令:
目的:由第二步导出的sql文件,复制一个数据库。
- 创建一个空白的数据库:
docker exec -it mysql_server mysql -uroot -proot create database test_db_copy;
- 导入数据:
docker exec -i mysql_server mysql -uroot -proot test_db_copy < /opt/sql_bak/test_db.sql
注意:这里需要将参数 -it 更换为 -i ,
否则会报错:”cannot enable tty mode on non tty input”OK,到这里就结束了
- 创建一个空白的数据库: