MySQL 5.6 建立GTID主從複製 (GTID-based Replication)

神諭丶發表於2016-10-26
實驗基於
MySQL 5.6.x(5.6.30)
ps. MySQL 5.7開啟GTID更方便

master: 192.168.1.186
slave: 192.168.1.187



〇 同步兩個mysql例項的資料
先在slave上執行
  1. SET @@global.read_only=ON;

然後透過mysqldump、xtrabackup等工具備份master資料,並且恢復到slave上。
因為開啟了read_only恢復可能需要具有super許可權的使用者。




〇 關閉兩個mysqld



〇 修改配置檔案,並以GTID方式啟動:
master和slave配置檔案都需要改
配置檔案[mysqld
]裡至少需要新增:

  1. log-bin
  2. relay-log                   = relay-log
  3. log-slave-updates
  4. gtid_mode                   = ON # 5.6為靜態引數,5.7.6以後為動態引數
  5. enforce-gtid-consistency    = ON # 5.6中為布林型別,5.7.6以後為列舉型別,多了兩個選項

另外要保證master和slave的server_id不一致

(在5.7中,slave也可以不需要開啟binlog便可以啟動GTID了,存放在mysql.gtid_executed中)



〇 建立連線
在master上建立replication使用者:

  1. GRANT replication slave ON *.* to repl@'192.168.1.187' IDENTIFIED BY 'repl@pwd';
  2. FLUSH PRIVILEGES;
並且在slave上執行:

  1. CHANGE MASTER TO
  2.     MASTER_HOST = '192.168.1.186',
  3.     MASTER_PORT = 3306,
  4.     MASTER_USER = 'repl',
  5.     MASTER_PASSWORD = 'repl@pwd',
  6.     MASTER_AUTO_POSITION = 1;

  7. START SLAVE;



〇 在master上關閉read_only

  1. SET @@global.read_only=OFF;



〇 參考文件:
MySQL 5.6 Reference Manual - Chapter 17 Replication - 17.1.3.2 Setting Up Replication Using GTIDs


作者微信公眾號(持續更新)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-2127166/,如需轉載,請註明出處,否則將追究法律責任。

相關文章