docker mysql 實現(xiàn)主從復制

一、安裝容器

--主庫
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

看到此參數(shù) 說明配置成功

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容