假設(shè)兩臺機(jī)器 ip 分別為 機(jī)器一: 192.168.14.37 機(jī)器二: 192.168.14.38 ,服務(wù)器 為 linux Rhel 5.9
在兩臺服務(wù)器中執(zhí)行創(chuàng)建用戶語句:
mysql:>create user 'repl'@'%' identified by '135246'; -- 創(chuàng)建用戶 repl 密碼 135246
服務(wù)器一執(zhí)行:
mysql:>grant replication client,replication slave on *.* to 'repl'@'192.168.14.38' identified by '135246'; -- 授權(quán)服務(wù)器一可以遠(yuǎn)程訪問服務(wù)器二
服務(wù)器二執(zhí)行:
mysql:>grant replication client,replication slave on *.* to 'repl'@'192.168.14.37' identified by '135246'; -- 授權(quán)服務(wù)器二可以遠(yuǎn)程訪問服務(wù)器一
驗(yàn)證(根據(jù)提示輸入密碼):
在服務(wù)器一上連接服務(wù)器二
mysql -h 192.168.14.38 -u repl -p
在服務(wù)器二上連接服務(wù)器一
mysql -h 192.168.14.37 -u repl -p
查看 mysql :
首先:vi /etc/my.cnf
在服務(wù)器1, 添加如下內(nèi)容:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] server_id = 1 log-bin character-set-server=utf8 #表名不區(qū)分大小寫 lower_case_table_names=1 #server_id = 1 # uniquely identify 從為2 show master status
可以得到服務(wù)器一和服務(wù)器二的 MASTER_LOG_FILE 和 MASTER_LOG_POS 信息,
假設(shè)服務(wù)器一為 " localhost-bin.000004" 和 "120" 服務(wù)器二為 " localhost-bin.000005" 和 "667"
在服務(wù)器一上執(zhí)行:
stop slave; CHANGE MASTER TO MASTER_HOST = '192.168.14.38', MASTER_USER = 'repl', MASTER_PASSWORD = '135246', MASTER_LOG_FILE = 'localhost-bin.000004', MASTER_LOG_POS = 120; start slave;
在服務(wù)器二上執(zhí)行:
stop slave; CHANGE MASTER TO MASTER_HOST = '192.168.14.37', MASTER_USER = 'repl', MASTER_PASSWORD = '135246', MASTER_LOG_FILE = 'localhost-bin.000005', MASTER_LOG_POS = 667; start slave;
最后驗(yàn)證主主同步是否成功:
在服務(wù)器一 mysql 添加 表 example
mysql:> create database example1 ; use example1; create table example1 (length int);
最后在服務(wù)器二查看是否有此數(shù)據(jù)庫,此表,和此條數(shù)據(jù).
查看同步狀態(tài) :show slave status G
如果出錯,可以看到出錯日志。
錯誤導(dǎo)致同步失敗參考mysql slave-skip-errors=all 深層理解
注意: 設(shè)置 double master 之前的數(shù)據(jù),兩個服務(wù)器不會同步;
推薦學(xué)習(xí):《mysql視頻教程》