概要說(shuō)明
mysql基于docker-compose進(jìn)行安裝,使用服務(wù)器(局域網(wǎng))
Master1:192.168.100.1
Master2:192.168.100.2
Slave:192.168.100.3
異構(gòu)數(shù)據(jù)同步配置說(shuō)明
安裝docker
安裝dosker-compose
-
Docker相關(guān)操作舅巷,安裝部分進(jìn)行單獨(dú)管理颈畸,在服務(wù)器新建相關(guān)管理目錄
a) /usr/local/docker/mysql
b) mysql下新建目錄master(/usr/local/docker/mysql/master)用于掛載mysql配置和數(shù)據(jù)相關(guān)文件纲仍,防止docker重啟數(shù)據(jù)丟失
c) 新建docker-compose.yml文件猜嘱,內(nèi)容如下:
注意,鏡像一定指定版本锰提,不要使用last
d) 在master/conf/mycnf目錄下新建文件 my.cnf择示,此文件為多數(shù)據(jù)庫(kù)配置關(guān)鍵文件,配置如下:
e) 啟動(dòng)鏡像(需在當(dāng)前目錄下杠园,含yml文件)
docker-compose up –d
以上命令是yml文件名稱(chēng)為docker-compose的情況下使用,使用其他名稱(chēng)舔庶,需要加-f抛蚁,如:docker-compose –f mysql.yml up –d
注:可以先docker-compose up啟動(dòng),此時(shí)可以查看啟動(dòng)日志惕橙,看是否存在問(wèn)題瞧甩,確認(rèn)成功后加 –d ,含義為后臺(tái)運(yùn)行
master1和master2都為以上配置
-
slave配置
a) mysql安裝配置一致
b) 掛載目錄不同
/usr/local/docker/mysql/slave
弥鹦,目錄為slave肚逸,其余目錄都一致,配置和數(shù)據(jù)在slave目錄下c) 在slave/conf/mycnf目錄下新建文件 my.cnf惶凝,此文件為多數(shù)據(jù)庫(kù)配置關(guān)鍵文件吼虎,配置如下:
d) 啟動(dòng)docker鏡像
-
mysql設(shè)置主從相關(guān)數(shù)據(jù)權(quán)限和配置(內(nèi)部配置)
a) 進(jìn)入mysql容器
docker exec –it mysql bash
b) 登錄mysql
mysql –uroot -proot
c) master 相關(guān)配置命令
新建用戶(hù)并設(shè)置權(quán)限(該用戶(hù)用于主從復(fù)制)
grant replication slave on *.* to 'slave'@'%' identified by '123456';
d) 刷新mysql權(quán)限
flush privileges;
e) 主從復(fù)制有兩種模式,binlog模式 和 GTID模式苍鲜,兩種模式都可以完成復(fù)制,此處采用GTID模式玷犹,并以此說(shuō)明混滔,binlog模式有需要了解可以@me
f) 采用GTID模式洒疚,master配置即完成
g) Slave配置
命令:
change master to master_host='192.168.100.221',master_port=3306,master_user='slave', master_password='123456',master_auto_position = 1 for channel 'master-3';
h) 開(kāi)啟主從復(fù)制模式
start slave for channel master-3;
i) 查看主從同步狀態(tài)是否成功
show slave status\G;
只有【Slave_IO_Running】和【Slave_SQL_Running】都是Yes,則同步是正常的坯屿。
如果是No或者Connecting都不行油湖,可查看mysql-error.log,以排查問(wèn)題领跛。