关于导入导出docker中的mysql数据库

docker_jpg

服务器在使用了docker后,对于备份和恢复数据库的事情做下记录:

由于docker不是实体,所以要把mysql的数据库导出到物理机上,命令如下:

1.先查看下mysql运行名称:

docker ps

结果:

890103c0e891   mysql:5.6   “docker-entrypoint.sh”   4 weeks ago   Up 4 weeks   3306/tcp   mysql-online

2.执行导出(备份)数据库命令:

由第一步的结果可知,我们的mysql运行在一个叫mysql-online的docker容器中。而我们要备份的数据库就在里面,叫做test_db。mysql的用户名密码均为root,我们将文件备份到/opt/sql_bak文件夹下。

docker exec -it mysql-online mysqldump -uroot -proot test_db > /opt/sql_bak/test_db.sql

3.执行导入(恢复)数据库命令:

目的:由第二步导出的sql文件,复制一个数据库。

首先我们进去,创建一个空白的数据库:

docker exec -it mysql-online mysql -uroot -proot

create database test_db_copy;

然后我们将sql文件导入:

docker exec -i mysql-online mysql -uroot -proot test_db_copy < /opt/sql_bak/test_db.sql

注意:这里需要将参数 -it 更换为 -i ,否则会报错:”cannot enable tty mode on non tty input”

http://stackoverflow.com/questions/29380344/docker-exec-it-returns-cannot-enable-tty-mode-on-non-tty-input

OK,到这里就结束了

 

Author: thinkwei

2 thoughts on “关于导入导出docker中的mysql数据库

回复 Docker 中 MySQL 数据的导入导出 – 码农的世界 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注