docker mysql讀寫分離
阿新 • • 發佈:2018-12-27
首先啟動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。