Step 1.创建mysql容器
1. 创建 Master 容器
$ sudo docker run --name master -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
2. 创建 Slave 容器
$ sudo docker run --name slave1 --link master:master -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7
$ sudo docker run --name slave2 --link master:master -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -d mysql:5.7
Step 2.将自定义配置文件复制到容器中
$ sudo docker cp custom.cnf master:/etc/mysql/conf.d
$ sudo docker cp custom.cnf slave1:/etc/mysql/conf.d
$ sudo docker cp custom.cnf slave2:/etc/mysql/conf.d
Step 3.重启 Master 和 Slave 容器
$ sudo docker restart master slave1 slave2
Step 4.配置 Master 和 Slave
1. 进入到Master容器进行操作
$ sudo docker exec -it master bash
# mysql -uroot -p123456
在Master容器中创建同步账户并授权
mysql>GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%' IDENTIFIED BY 'SyncPassword';
mysql>show master status;
记住File和Position字段的值,下面要用
2. 进入到Slave容器进行操作
$ sudo docker exec -it slave1 bash
# mysql -uroot -p123456
在Slave容器中连接Master并启动Slave
mysql>CHANGE MASTER TO MASTER_HOST='master',MASTER_USER='sync',MASTER_PASSWORD='SyncPassword',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS= 300;
*MASTER_LOG_FILE的值就是Master中的File;MASTER_LOG_POS的值就是Master中的Position。
start slave;
配置Slave2,重复本步骤即可。