一、拉取mysql映象
docker pull mysql
二、建立容器
# 主庫
docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql
# 從庫
docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql
三、配置主庫
[mysqld] ## 同一區域網內注意要唯一 server-id=100 ## 開啟二進位制日誌功能,可以隨便取(關鍵) log-bin=mysql-bin
四、配置從庫
[mysqld] ## 設定server_id,注意要唯一 server-id=101 ## 開啟二進位制日誌功能,以備Slave作為其它Slave的Master時使用 log-bin=mysql-slave-bin ## relay_log配置中繼日誌 relay_log=edu-mysql-relay-bin
配置完成之後重啟mysql
docker restart mysql-master
docker restart mysql-slave
五、在主庫建立使用者並授權,允許從庫服務連線主庫的服務
CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; ALTER USER 'slave'@'%' identified with mysql_native_password by '123456';
flush privileges;
六、配置主從同步
# 查主庫中詢File和Position
show master status;
# 在從庫中設定主庫資訊
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 784, master_connect_retry=30;
flush privileges;
七、啟動主從
# 在從庫中執行
start slave;
# 檢視狀態
show slave status \G
出現雙yes則同步正常