詳解mysql double master的配置方法

假設兩臺機器 ?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
喜歡就支持一下吧
點贊12 分享