1. 環(huán)境:CentOS5.5 x84,MySQL5.5.15
2. 兩臺機(jī)器:
master1:192.168.5.143
master2:192.168.0.149
3. 單獨(dú)編譯安裝MySQL,并測試連接成功。
-
4. 兩臺機(jī)器上都建立用戶,并賦予復(fù)制權(quán)限:
master1:
mysql> CREATE USER 'test12'@'%';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'test12'@'%' IDENTIFIED BY 'test12';
master2:
mysql> CREATE USER 'test34'@'192.168.5.143';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'test34'@'192.168.5.143' IDENTIFIED BY 'test34';
host是隨便設(shè)置的,只要是對方可以連接上即可。權(quán)限方面,只需要有REPLICATION SLAVE權(quán)限即可。
5. master1上的my.cnf添加:
[mysqld]
# for repl
server-id = 1
log-bin = mysql-bin
auto-increment-increment= 2 # 應(yīng)設(shè)為整個結(jié)構(gòu)中服務(wù)器的總數(shù)
auto-increment-offset = 1 # 設(shè)定數(shù)據(jù)庫中自動增長的起點(diǎn),避免兩臺服務(wù)器數(shù)據(jù)同步時出現(xiàn)主鍵沖突
6. master2上的my.cnf添加:
[mysqld]
# for repl
server-id = 2
log-bin = mysql-bin
auto-increment-increment= 2
auto-increment-offset = 1
7. 重啟兩臺機(jī)器上的服務(wù)。
8. master1上指定master2為主:
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.0.149',
-> MASTER_USER='test34',
-> MASTER_PASSWORD='test34';
Query OK, 0 rows affected (0.19 sec)
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
9. master2上指定master1為主:
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.5.143',
-> MASTER_USER='test12',
-> MASTER_PASSWORD='test12';
Query OK, 0 rows affected (0.18 sec)
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
10. 測試
實(shí)驗(yàn)1:啟動兩個服務(wù),在任一mysql上進(jìn)行操作,在另一mysql上均能體現(xiàn)出來。
實(shí)驗(yàn)2:啟動兩個服務(wù),在master1上通過tpcc工具添加20個warehouse,數(shù)據(jù)占用硬盤約1.9G,在兩臺機(jī)器上計算count(*),數(shù)據(jù)一致。
實(shí)驗(yàn)3:啟動master1,在master1上通過tpcc工具添加一個warehouse,啟動master2,同步一段時間后,計算count(*),結(jié)果一致。
ps,MySQL的主主復(fù)制實(shí)際上就是雙向的主從復(fù)制。
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|