假設兩臺機器 ?ip 分別為 機器一: 192.168.14.37 ?機器二: ?192.168.14.38 ,服務器 為 linux rhel 5.9
在兩臺服務器中執行創建用戶語句:
mysql:>create user 'repl'@'%' identified by '135246'; -- 創建用戶 repl 密碼 135246
服務器一執行:
mysql:>grant replication client,replication slave on *.* to 'repl'@'192.168.14.38' identified by '135246'; -- 授權服務器一可以遠程訪問服務器二
服務器二執行:
mysql:>grant replication client,replication slave on *.* to 'repl'@'192.168.14.37' identified by '135246'; -- 授權服務器二可以遠程訪問服務器一
驗證(根據提示輸入密碼):
? ?在服務器一上連接服務器二
mysql -h 192.168.14.38 -u repl -p
在服務器二上連接服務器一
mysql -h 192.168.14.37 -u repl -p
查看 mysql :
首先:vi /etc/my.cnf
? 在服務器1, 添加如下內容:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] server_id = 1 log-bin character-set-server=utf8 #表名不區分大小寫 lower_case_table_names=1 #server_id = 1 # uniquely identify 從為2 show master status
可以得到服務器一和服務器二的 ?MASTER_LOG_FILE ?和 ?MASTER_LOG_POS 信息,
假設服務器一為 " localhost-bin.000004" 和 "120" 服務器二為 " localhost-bin.000005" 和 "667"
在服務器一上執行:
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;
在服務器二上執行:
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;
最后驗證主主同步是否成功:
在服務器一 mysql 添加 表 example
mysql:> create database example1 ; use example1; create table example1 (length int);
最后在服務器二查看是否有此數據庫,此表,和此條數據.
查看同步狀態 :show slave status G
如果出錯,可以看到出錯日志。
錯誤導致同步失敗參考mysql slave-skip-errors=all 深層理解
注意: 設置 double master 之前的數據,兩個服務器不會同步;
推薦學習:《mysql視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦