上篇文章介紹了關於MySQL如何配置主從復制,本篇主要說一下主主復制:
先對文章將要出現的關鍵詞做一下說明:
server1、server2、server...表示數據庫服務器
(寫的比較懶,用心體會)
mysql主主復制配置
server1 ip:192.168.0.231
server2 ip:192.168.0.234
更改兩台主機的mysql配置文件
vim /etc/my.cnf
server1添加
server-id=1
log-bin=mysqlmaster-bin.log
auto-increment-increment=2
auto-increment-offset=1
server2添加
server-id=2
log-bin=mysqlmaster-bin.log
auto-increment-increment=2
auto-increment-offset=2
說明:auto-increment-increment的值設為整個結構中服務器的總數,此實驗為兩台服務器,所以值為2
auto-increment-offset是用來設定數據庫中自動增長的起點的,因為服務器都設定了一次自動增長的值為2,所以他們的起點必須得不同,這樣才能避免兩台服務器數據同步時出現主鍵沖突
另可以設置replicate-do-db=database-name指定需要同步的數據庫
重啟mysql服務使配置生效
登陸mysql
添加同步數據所需要的用戶
server1上
mysql>GRANT REPLICATION SLAVE ON *.* TO 'systop1'@'192.168.0.%' IDENTIFIED BY 'systop';
server2上
GRANT REPLICATION SLAVE ON *.* TO 'systop2'@'192.168.0.%' IDENTIFIED BY 'systop';
查看兩台服務器的master狀態
server1
SHOW MASTER STATUS;
+------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------------+----------+--------------+------------------+-------------------+
| mysqlmaster-bin.000002 | 120 | | | |
server2
show master status;
+------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------------+----------+--------------+------------------+-------------------+
| mysqlmaster-bin.000001 | 336 | | | |
說明二進制日志路徑
server2上執行
CHANGE MASTER TO MASTER_HOST='192.168.0.231',MASTER_USER='systop1',MASTER_PASSWORD='systop',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=120;
server1上執行
CHANGE MASTER TO MASTER_HOST='192.168.0.234',MASTER_USER='systop2',MASTER_PASSWORD='systop',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=336;
開啟復制功能
兩台機器都執行
start slave;
查看復制連接狀態
執行
show slave status \G;
查看Slave_IO_Running: Yes
Slave_SQL_Running: Yes
都顯示yes表示啟動正常
測試:兩台服務器都做數據更新操作,查看數據是否更新
老鐵們,互相關注交流啊!