docker mysql读写分离

首先启动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
docker mysql读写分离_第1张图片

保存并退出master容器,然后重启master容器:

docker restart master

重新进入master容器:

docker exec -it master bin/sh

然后登陆mysql:

mysql -u root -p
查看master日志状态:

show master status;
docker mysql读写分离_第2张图片
记住日志名和日志位置。


接下来配置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
docker mysql读写分离_第3张图片

保存并退出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;
docker mysql读写分离_第4张图片

注意这里的master_host不要写127.0.0.1或者localhost这种。

启动slave:

start slave;

docker mysql读写分离_第5张图片


到这里,master和slave容器里的mysql已经连接起来了,在master上做的所有操作都会同步到slave容器里;而在slave里做的操作不会同步到master。

你可能感兴趣的:(doker,mysql)