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

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

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

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

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

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

此時(shí)會(huì)報(bào)出bash: vi: command not found,需要我們?cè)赿ocker容器內(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 #啟用二進(jìn)制日志
binlog-ignore-db=mysql # 設(shè)置不要復(fù)制的數(shù)據(jù)庫(可設(shè)置多個(gè))
binlog-ignore-db=information_schema
binlog-do-db=testdb #設(shè)置需要復(fù)制的數(shù)據(jù)庫
binlog_format=STATEMENT #設(shè)置logbin格式

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

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

5、注意,由于MySQL通過如下命令啟動(dòng),所以可以直接在docker主機(jī)的/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、驗(yàn)證主機(jī)從機(jī)都關(guān)閉防火墻

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

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

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

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

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

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

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

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

14、如何重新配置主從

stop slave;
reset master;

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

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