docker下MySQL数据迁移

445 阅读2分钟

当我们要迁移Docker容器下的MySQL以及里面的数据库表数据的时候, 可以用到如下方案

1.进入源MySQL容器内, 进行sql导出

docker exec -it mysql bash

进入容器后, 使用mysqldump进行导出操作, 其中-p后面为数据库名称, 末尾为导出的sql文件名

mysqldump -u root -p wordpress > wordpress.sql

结果:

image.png

随后使用exit命令退出MySQL容器

然后要使用docker cp命令将sql文件导出docker容器外

其中mysql为容器名, :/后面为刚才导出的容器内的sql文件路径, /root/wordpress.sql为指定的容器外的宿主机的sql文件路径, 以达到将docker容器内的文件拷贝到宿主机的目的, 后续还要上传到新服务器使用

docker cp mysql:/wordpress.sql /root/wordpress.sql
  1. 使用scp命令将sql文件上传到新服务器
scp /root/wordpress.sql root@新服务器的ip:/root
  1. 在新服务器里建立一个MySQL容器
docker run -itd --name mysql --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql
  1. 将刚才传输过来的/root/wordpress.sql文件传输到该容器内

其中/root/wordpress.sql为刚才的传过来的sql文件路径, mysql:/wordpress.sql为容器内的sql文件路径

docker cp /root/wordpress.sql mysql:/wordpress.sql
  1. 进入新服务器的mysql容器内
docker exec -it mysql bash

然后进入容器内的mysql命令行模式

mysql -root -p

输入刚才建立容器的时候设定的密码

image.png

进入mysql命令行模式后, 使用create命令创建相应的数据库, 其中wordpress为数据库名称, 注意末尾有分号

create database wordpress;

然后使用use命令选中该数据库

use wordpress

然后使用source命令将刚才拷贝进来的sql文件导入到数据库

source wordpress.sql

导入完成后使用exit退出即可

image.png

image.png

收工.