在 master
和 slave
上安裝mysql
docker pull mysql
docker run -d --name godfunc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 --restart=always mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
修改 mysql 容器中的配置 /etc/mysql/my.cnf
master
配置和添加 slave
用戶
#配置 [mysqld] server-id = 1 log-bin = mysql-bin
-- 添加用戶 CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
slave
配置
server-id = 2 log-bin = mysql-slave-bin relay_log=edu-mysql-relay-bin
- 重啓
mysql
服務
docker restart godfunc-mysql
- 將兩個數據庫的數據庫同步(導出sql進行同步)
鏈接 master
和 slave
- 查看
master
的狀態
進入到 master
數據庫中,執行下面的sql
show master status
記錄下 File(假設爲mysql-bin.000001) 和 Position(假設爲 2830);
- 進入
slave
, 鏈接 master
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= 2830, master_connect_retry=30;
開啓主從複製
start slave
查詢狀態
show slave status \G;
當下面都是 yes 說明已經成功,若是出現 connecting 獲取 No,能夠查看 Last_IO_Error
的提示信息
Slave_IO_Running: Yes Slave_SQL_Running: Yes