首先启动master mysql容器
docker run -d -p 3306:3306 --name master -e MYSQL_ROOT_PASSWORD=good mysql
然后登陆到master mysql容器:
docker exec -it master bin/sh
修改master容器下的/etc/mysql/my.cnf文件,加上如下两行:
[mysql1d]
log-bin=master-bin
server-id=1
保存并退出master容器,然后重启master容器:
docker restart master
重新进入master容器:
docker exec -it master bin/sh
然后登陆mysql:
mysql -u root -p
查看master日志状态:
show master status;
记住日志名和日志位置。
接下来配置slave容器
启动slave容器:
docker run -d -p 3307:3306 --name slave -e MYSQL_ROOT_PASSWORD=hello mysql
然后登陆到slave容器:
docker exec -it slave
修改slave容器的/etc/mysql/my.cnf,加上一下两行:
[mysql1d]
log-bin=slave-bin
server-id=2
保存并退出slave容器,然后重启slave容器,使得配置生效:
docker restart slave
重新进入slave容器
docker exec -it slave bin/sh
登陆到mysql:
mysql -u root -p
然后连接到master:
change master to master_host='30.5.112.73', master_user='root', master_password='good', master_log_file='master-bin.000001', master_log_file=120;
注意这里的master_host不要写127.0.0.1或者localhost这种。
启动slave:
start slave;
到这里,master和slave容器里的mysql已经连接起来了,在master上做的所有操作都会同步到slave容器里;而在slave里做的操作不会同步到master。