一、安裝容器
--主庫
docker run -p 33106:3306 --name mysql33106 \
-v /zensun/mydata/mysql33106/log:/var/log/mysql \
-v /zensun/mydata/mysql33106/data:/var/lib/mysql \
-v /zensun/mydata/mysql33106/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
--從庫
docker run -p 33206:3306 --name mysql33206 \
-v /zensun/mydata/mysql33206/log:/var/log/mysql \
-v /zensun/mydata/mysql33206/data:/var/lib/mysql \
-v /zensun/mydata/mysql33206/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
二、修改配置文件
--主庫配置文件配置
cd /zensun/mydata/mysql33106/conf
touch my.cnf
vim my.cnf
[mysqld]
## 設置server_id,同一局域網(wǎng)中需要唯一
server_id=101
## 指定不需要同步的數(shù)據(jù)庫名稱
binlog-ignore-db=mysql
## 開啟二進制日志功能
log-bin=mall-mysql-bin
## 設置二進制日志使用內(nèi)存大?。ㄊ聞眨?binlog_cache_size=1M
## 設置使用的二進制日志格式(mixed,statement,row)
binlog_format=mixed
## 二進制日志過期清理時間。默認值為0,表示不自動清理。
expire_logs_days=7
## 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷。
## 如:1062錯誤是指一些主鍵重復,1032錯誤是因為主從數(shù)據(jù)庫數(shù)據(jù)不一致
slave_skip_errors=1062
#重啟主庫mysql
docker restart mysql33106
#創(chuàng)建同步數(shù)據(jù)的用戶
CREATE USER 'slave' @'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE,
REPLICATION CLIENT ON *.* TO 'slave' @'%';
--從庫配置文件配置
cd /zensun/mydata/mysql33206/conf
touch my.cnf
vim my.cnf
[mysqld]
## 設置server_id,同一局域網(wǎng)中需要唯一
server_id=102
## 指定不需要同步的數(shù)據(jù)庫名稱
binlog-ignore-db=mysql
## 開啟二進制日志功能,以備Slave作為其它數(shù)據(jù)庫實例的Master時使用
log-bin=mall-mysql-slave1-bin
## 設置二進制日志使用內(nèi)存大?。ㄊ聞眨?binlog_cache_size=1M
## 設置使用的二進制日志格式(mixed,statement,row)
binlog_format=mixed
## 二進制日志過期清理時間。默認值為0,表示不自動清理。
expire_logs_days=7
## 跳過主從復制中遇到的所有錯誤或指定類型的錯誤,避免slave端復制中斷。
## 如:1062錯誤是指一些主鍵重復,1032錯誤是因為主從數(shù)據(jù)庫數(shù)據(jù)不一致
slave_skip_errors=1062
## relay_log配置中繼日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave將復制事件寫進自己的二進制日志
log_slave_updates=1
## slave設置為只讀(具有super權(quán)限的用戶除外)
read_only=1
docker restart mysql33206
三、查看主庫的master狀態(tài)
--進入主庫連接
show master status;
查看 file position參數(shù)

image.png
四、配置從庫參數(shù) 開啟同步
CHANGE MASTER TO master_host = '192.168.69.112',
master_user = 'slave',
master_password = '123456',
master_port = 33106,
master_log_file = 'mall-mysql-bin.000001', --主庫查看的file參數(shù)
master_log_pos = 154, --主庫查看的position參數(shù)
master_connect_retry = 30;
##開啟從庫同步
start slave;
##查看同步狀態(tài)
show slave status;

image.png