Mysql新建主从同步-mysqldump
注:建议先看完文章再操作或在测试环境中自行测试
主库192.168.50.56,端口2205,容器名称mysql
从库192.168.50.64,端口2206,容器名称mysqlread
1
2
2
# 备份数据库sql
备份你需要的数据库(例:apolloconfigdb apolloportaldb)sql 同时查看偏移量。期间使用mysqldump会很慢
命令
#进入容器
docker exec -it mysql bash
#备份数据库
mysqldump -h192.168.50.56 -P2205 -uroot -pim@mysql123 --databases apolloconfigdb apolloportaldb > /home/mysql_db2.sql
#查看偏移量
docker exec -it mysql bash -c 'mysql -uroot -pim@mysql123 -e"show master status\G;"'
1
2
3
4
5
6
2
3
4
5
6
偏移量显示:
-----mysql-bin.000007----
-----154----
1
2
2
注:为以防万一,在执行mysqldump命令时查看偏移量1一次,在执行完成mysqldump命令在查看偏移量2一次)
# 从容器里面拷文件到宿主机
docker cp mysql:/home /data/test
1
# 传输文件
cd /data/test
scp -P 22 mysql_db2.sql root@192.168.50.64:/data/test/mysql_db2.sql
64服务器密码
1
2
3
2
3
# 新数据库导入sql
新数据容器名称为mysqlread
docker cp /data/test mysqlread:/sql
docker exec -it mysqlread bash
cd sql
mysql -uroot -pim@mysql123 < mysql_db2.sql;
1
2
3
4
2
3
4
# 设置从库同步
docker exec -it mysqlread bash -c 'mysql -uroot -pim@mysql123 -e "stop slave;reset slave;CHANGE MASTER TO MASTER_HOST=\"192.168.50.56\", MASTER_PORT=2205, MASTER_USER=\"root\", MASTER_PASSWORD=\"im@mysql123\",MASTER_LOG_FILE=\"mysql-bin.000007\",MASTER_LOG_POS=154;start slave;"'
(注:偏移量先使用1,然后查看结果是否正常。若异常则使用偏移量2设置)
1
2
2
# 查看结果
docker exec -it mysqlread bash -c 'mysql -uroot -pim@mysql123 -e"show slave status\G"'
1
上次更新: 2023/03/13, 03:16:04