上篇文章介紹了關於MySQL如何配置主從複製,本篇主要說一下主主複製: 先對文章將要出現的關鍵詞做一下說明: server1、server2、server...表示資料庫伺服器 (寫的比較懶,用心體會) mysql主主複製配置server1 ip:192.168.0.231server2 ip:19 ...
上篇文章介紹了關於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表示啟動正常
測試:兩台伺服器都做數據更新操作,查看數據是否更新
老鐵們,互相關註交流啊!