當(dāng)前位置:首頁 > IT技術(shù) > 數(shù)據(jù)庫 > 正文

1.Docker下搭建MySQL主從復(fù)制(一主一從)
2022-08-29 23:52:07

Docker下搭建MySQL主從復(fù)制(一主一從)

實現(xiàn)Mycat讀寫分離

1、通過docker exec -it 627a2368c865 /bin/bash命令進入到Master容器內(nèi)部

2、cd /etc/mysql切換到/etc/mysql目錄下,然后vi my.cnf對my.cnf進行編輯

此時會報出bash: vi: command not found,需要我們在docker容器內(nèi)部自行安裝vim。

執(zhí)行apt-get update,然后再次執(zhí)行apt-get install vim即可成功安裝vim

3、使用vim編輯my.cnf,在my.cnf下添加如下配置:

[mysqld]
server-id=1 #主服務(wù)器唯一ID
log-bin=mysql-bin #啟用二進制日志
binlog-ignore-db=mysql # 設(shè)置不要復(fù)制的數(shù)據(jù)庫(可設(shè)置多個)
binlog-ignore-db=information_schema
binlog-do-db=testdb #設(shè)置需要復(fù)制的數(shù)據(jù)庫
binlog_format=STATEMENT #設(shè)置logbin格式

4、同理,編輯slave從機的my.cnf文件,添加如下:

[mysqld]
server-id=2 #從服務(wù)器唯一ID
relay-log=mysql-relay #啟用中繼日志

5、注意,由于MySQL通過如下命令啟動,所以可以直接在docker主機的/usr/local/docker/mysql/conf位置直接編寫my.cnf文件同樣生效,則不需要在容器內(nèi)安裝vim等;

docker run -p 3306:3306 --name mysql1  -v /usr/local/docker/mysql/conf1:/etc/mysql  -v /usr/local/docker/mysql/logs1:/var/log/mysql  -v /usr/local/docker/mysql/data1:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.6

6、重啟主從 mysql的容器,

7、驗證主機從機都關(guān)閉防火墻

8、在主機上建立帳戶并授權(quán) slave

#在主機MySQL里執(zhí)行授權(quán)命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123123';
# 查詢master的狀態(tài)
show master status;

9、查詢主機狀態(tài),找到如下File和Position的值;

10、在從機上配置需要復(fù)制的主機

#復(fù)制主機的命令
CHANGE MASTER TO MASTER_HOST='主機的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.具體數(shù)字',MASTER_LOG_POS=具體值;
#啟動從服務(wù)器復(fù)制功能
start slave;
#查看從服務(wù)器狀態(tài)
show slave status;
注意:如果需要停用slave,命令為:stop slave;

11、查看從機狀態(tài),如果這個兩個參數(shù)為Yes,則表示配置成功。

12、然后在主機新建庫、新建表、insert 記錄,從機復(fù)制測試。

13、主從復(fù)制排錯:

14、如何重新配置主從

stop slave;
reset master;

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務(wù)立即開通 >