GTID(Global Transaction ID,全局事務標識)是MySQL的一個特性,用于在網絡分區或主從切換等場景下保證數據一致性。GTID一般與主從復制(replication)結合使用。下面介紹如何在MySQL中開啟GTID主從切換。
1. 配置MySQL Server
# 編輯my.cnf文件 [mysqld] log-bin=mysql-bin # 開啟二進制日志 gtid-mode=on # 開啟GTID模式 enforce-gtid-consistency # 強制GTID模式 # 重啟MySQL Server systemctl restart mysql
2. 創建主從復制賬號
# 登陸MySQL Server mysql -u root -p # 創建復制賬號并授權 CREATE USER 'replication'@'192.168.0.%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.0.%';
3. 開啟主從同步
# 查看主數據庫的binlog日志信息,將File和Position保存下來 mysql -u root -p -e "show master status;" # 在從數據庫上指定主數據庫的GTID信息進行同步 CHANGE MASTER TO MASTER_HOST='192.168.0.1', MASTER_USER='replication', MASTER_PASSWORD='123456', MASTER_AUTO_POSITION=1; # 啟動從數據庫的同步線程 START SLAVE;
4. 主從切換
# 在主數據庫上執行 FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; # 將File和Position信息記錄下來,同時將該信息更新到從數據庫 CHANGE MASTER TO MASTER_HOST='192.168.0.2', MASTER_USER='replication', MASTER_PASSWORD='123456', MASTER_AUTO_POSITION=1; # 啟動從庫的同步線程 START SLAVE;
以上就是MySQL開啟GTID主從切換的步驟。通過GTID,我們可以避免主從切換時數據不一致的問題,確保數據的可靠性。