目标:将主机A Docker中的Mysql的aap库 迁移至 主机B
主机A:
操作系统:CentOS7
数据库版本: MySQL5.7
Docker版本:Docker version 19.03.13
迁移步骤:
1、在主机B中,尽量安装相同版本的MySQL及Docker;
2、在主机A中,找到目标MySQL在docker中的Name:mysqldbserver
图1
通过命令:docker inspect mysqldbserver|grep 'Mount' -A 20
找到数据目录:
图2
图3
通过scp -r 命令,目标数据库(如:aap)从主机A拷贝至主机B
scp -r aap 主机B IP:目标路径
3、在主机B中,获取MySQL5.7镜像(问度娘)
图4
4、docker映射路径:
mkdir -p /opt/db/mysql/logs:宿主机本地MySQL存放路径
mkdir -p /opt/db/mysql/nulldata:宿主机本地MySQL数据路径
mkdir -p /opt/db/mysql/conf/nullconf:宿主机本地MySQL配置路径
5、运行docker run
docker run --restart=always -p 3306:3306 --name mysqldbserver -v /opt/db/mysql/logs:/var/log/mysql -v /opt/db/mysql/nulldata:/var/lib/mysql -v /opt/db/mysql/conf/nullconf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d migs/mysql-5.7:latest
6、测试是否可以正常登录MySQL
mysql -h 127.0.0.1 -u root -p
密码123456
图5
7、将之前从A拷贝至B的数据库文件aap复制到A的/opt/db/mysql/nulldata下
cp -r /opt/db/mysql/mysqldbserver/aap /opt/db/mysql/nulldata/
图6
8、将主机A的ibdata1文件拷贝到主机B上。(很重要,不然会报错:数据表不存在)
scp [主机A ibdata1] 主机BIP:路径/
scp /usr/local/mysql/data/ibdata1 Ali169:/opt/db/mysql/nulldata/
9、重启主机B的MySQL
图7
10、测试是否aap存入MySQL
图8
至此,迁移成功。