一、實現(xiàn)原理
主主復(fù)制即在兩臺MySQL主機(jī)內(nèi)都可以變更數(shù)據(jù),而且另外一臺主機(jī)也會做出相應(yīng)的變更。聰明的你也許已經(jīng)想到該怎么實現(xiàn)了。對,就是將兩個主從復(fù)制有機(jī)合并起來就好了。只不過在配置的時候我們需要注意一些問題,例如,主鍵重復(fù),server-id不能重復(fù)等等。
主主復(fù)制----->互為主從
二、實現(xiàn)功能
兩臺MySQL之間互為彼此的從庫,同時又是主庫。這種方案,既做到了訪問量的壓力分流,同時也解決了“單點故障”問題。任何一臺故障,都還有另外一套可供使用的服務(wù)。
三、架構(gòu)模式
四、配置文件
--192.168.18.5
【mysqld】
server-id=1 #任意自然數(shù)n,只要保證兩臺MySQL主機(jī)不重復(fù)就可以了。
log-bin=mysql-bin #開啟二進(jìn)制日志
log_bin_index = mysql-bin.index
relay_log = mysql-relay-bin
relay_log_index = mysql-relay-bin.index
read_only = 1
skip_slave_start = 1
auto_increment_increment=2 #步進(jìn)值auto_imcrement。一般有n臺主MySQL就填n
auto_increment_offset=1 #起始值。一般填第n臺主MySQL。此時為第一臺主MySQL
binlog-ignore=mysql #忽略mysql庫
binlog-ignore=information_schema #忽略information_schema庫
slave-skip-errors = all
--192.168.18.6
【mysqld】
server-id = 2
log_bin = mysql-bin
log_bin_index = mysql-bin.index
relay_log = mysql-relay-bin
relay_log_index = mysql-relay-bin.index
read_only = 1
skip_slave_start = 1
log_slave_updates = 1
auto-increment-increment = 2
auto-increment-offset = 2 #此處區(qū)別于18.5的配置
slave-skip-errors = all
配置好后重啟MySQL
兩臺數(shù)據(jù)庫的/etc/my.cnf配置
五、互相授權(quán)訪問權(quán)限
18.5上執(zhí)行授權(quán)root遠(yuǎn)程18.6
MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.18.6' IDENTIFIED BY '1qaz2wsx';
Query OK, 0 rows affected, 1 warning (0.06 sec)
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.05 sec)
18.6上執(zhí)行授權(quán)root遠(yuǎn)程18.5
MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.18.5' IDENTIFIED BY '1qaz2wsx';
Query OK, 0 rows affected, 1 warning (0.04 sec)
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.03 sec)
在18.5上查看二進(jìn)制文件名與位置
在18.6上告知18.5的文件名與位置
MySQL [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.18.5',
-> MASTER_USER='root',
-> MASTER_PASSWORD='1qaz2wsx',
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=154;
至此完成主從模式。
要完成主主,相反,18.6也要告知18.5的二進(jìn)制文件名與位置
在18.6上查看
在18.5上執(zhí)行
MySQL [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.18.6',
-> MASTER_USER='root',
-> MASTER_PASSWORD='1qaz2wsx',
-> MASTER_LOG_FILE='mysql-bin.000005',
-> MASTER_LOG_POS=154;
Query OK, 0 rows affected, 2 warnings (0.31 sec)
然后分別開啟start slave;
查看slave狀態(tài)
至此完成主主復(fù)制。
配置主主之前,mysql的庫最好是一致的,也就是初始化的模式的,如果庫不一致,會導(dǎo)致報錯。
參考鏈接
報錯參考鏈接
配置參考鏈接
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。