docker run -d \
--name mysql-slave \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /docker/mysql-slave/conf:/etc/mysql \
-v /docker/mysql-slave/data:/var/lib/mysql \
-v /docker/mysql-slave/logs:/var/log/mysql \
-p 3308:3306 \
-d mysql:5.7.26
mysqldump
进行备份RDS的数据库> docker exec -it mysql-slave /bin/bash
> mysqldump -hxxxxxxxxxxx.mysql.rds.aliyuncs.com -uroot -pPassword --databases 需要的数据库(如`test test1 test2 test3`一般排除 information_schema、performance_schema 和 mysql) > db.sql
> //也可以使用如下备份全部数据库
> mysqldump -hxxxxxxxxxxx.mysql.rds.aliyuncs.com -uroot -pPassword --all-databases > db.sql
> mysql -uroot -p123456
> mysql> source < db.sql
show global variables like '%gtid%'\G
在主库(RDS)上查询gtid_purged的值,如8177958d-a3b3-11ea-8f76-00163e0fbc31:1-2372913
show global variables like '%gtid%'\G
在从库查询gtid_purged的值是否为空,不为空,使用reset master
清空docker exec -it mysql-slave mysql -P3306 -uroot -pPassw0rd -e "CHANGE MASTER TO MASTER_HOST='xxxxxxxx.mysql.rds.aliyuncs.com', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='Password', MASTER_AUTO_POSITION=1;" \
-e "START SLAVE;"
docker exec -it mysql-slave mysql -P3306 -uroot -pPassw0rd -e "show slave status\G"
4
、5
步,重新走一下就ok使用 RDS for MySQL 配置到自建数据库的主从复制