1. 程式人生 > >docker mysql讀寫分離

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

儲存並退出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。