安裝MySQL
使用Docker拉取MySQL映象
# docker pull mysql:5.7
利用剛才的映象構建容器
docker run --name master -p 3406:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker run --name slave -p 3506:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
檢視容器是否成功
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
53c7082cc45c mysql:5.7 "docker-entrypoint.s…" About an hour ago Up 28 minutes 33060/tcp, 0.0.0.0:3506->3306/tcp slave
01bc525eb7f7 mysql:5.7 "docker-entrypoint.s…" 5 hours ago Up 29 minutes 33060/tcp, 0.0.0.0:3406->3306/tcp master
修改配置檔案
# 確定 master 容器 msyql 配置檔案(現在的容器是 mysqld.cnf)
#第一步 複製容器的檔案到 宿主機(如果沒有 對應的目錄需要建立)
docker cp master:/etc/mysql/mysql.conf.d/mysqld.cnf /usr/local/mysql/master/mysqld.cnf
# 第二步 編輯 mysqld.cnf 在 [mysqld] 節點最後加上後儲存
log-bin=mysql-bin
server-id=1 # 很重要 這個是唯一 用來生成 uuid
# 第三步 複製配置檔案到 容器
docker cp /usr/local/mysql/master/mysqld.cnf master:/etc/mysql/mysql.conf.d/mysqld.cnf
# 第四步 從容器同樣的操作 server-id 不能相同(切記)
# 記得重啟容器
navicat 連線 (master)msyql 伺服器 實現主從複製
show master status;
navicat 連線 (slave)msyql 伺服器 實現主從複製
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='192.168.56.99',
MASTER_PORT=3406,
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS = 1640,
MASTER_USER='root',
MASTER_PASSWORD='root';
START SLAVE;
show slave status;
在 從 容器 檢視 主從複製狀態
show slave status;
兩個都為 YES 說明成功
如果有問題,需要檢查 IP,埠 ,使用者名稱和密碼,MASTER_LOG_FILE,MASTER_LOG_POS 是否正確
本作品採用《CC 協議》,轉載必須註明作者和本文連結