Mysql 5.7.6以上版本怎样关闭GTID(由GTID改为基于file,position方式)
平时不建议关闭GTID,假如开启GTID遇到问题,需要回退到基于file,position方式,则可以执行如下步骤:
1.在从库停止主从复制:
STOP SLAVE;
CHANGE MASTER TO MASTER_AUTO_POSITION = 0;
START SLAVE;
SHOW SLAVE STATUS; #检查从库IO进程和SQL进程状态是否为Yes,检查AUTO_POSITION值
2.在主从每台服务器上执行:
SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
3.在主从每台服务器上执行:
SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
4.在每台服务器上,等待变量@@GLOBAL.GTID_OWNED等于空字符串
SELECT @@GLOBAL.GTID_OWNED;
理论上这可能是空的,然后又不是空的。这不是问题,只要它是空过一次就可以。
5.确保从库无延迟
SHOW SLAVE STATUS;
6.在主从每台服务器上执行:
SET @@GLOBAL.GTID_MODE = OFF;
7.在主从每台服务器上执行:
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY= OFF;
8.检查GTID参数,确保值都为OFF:
show variables like '%gtid_mode%';
show variables like '%enforce_gtid_consistency%';
9.修改配置文件,设置GTID参数:
vi /etc/my.cnf
GTID_MODE=OFF
ENFORCE_GTID_CONSISTENCY= OFF
--本篇文章参考自:
https://dev.mysql.com/doc/refman/5.7/en/replication-mode-change-online-disable-gtids.html