文档解释
Error number: 4015; Symbol: ER_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS_REQUIRES_GTID_MODE_ON; SQLSTATE: HY000
Message: CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL| cannot be executed because @@GLOBAL.GTID_MODE ON.
错误说明
ER_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS_REQUIRES_GTID_MODE_ON这个错误(Error Number 4015)主要指在MySQL中,使用Global transaction identifier (GTID)模式去分配全局GID时,不允许在匿名事务中去分配全局GID。这个错误是由于用户尝试在gtid_mode = OFF的情况下去使用gtid,因而导致MySQL抛出此错误。
常见案例
一般情况下,当MySQL在关闭gtid_mode模式的情况下,特别是用户尝试使用gtid进行匿名事务时,将会出现ER_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS_REQUIRES_GTID_MODE_ON的错误。
解决方法
在解决这个错误的时候,首先必须确保MySQL的gtid_mode模式处于ON状态。可以通过在MySQL的对应配置文件中调整gtid_mode的值,保证 OFF的情况下也处于ON情况下,也就是配置为ON或者AUTOMATIC,然后重启MySQL服务即可解决这个问题。
另外,在 MySqL5.7.8版本及之前的版本中,建议不要使用GTID,即使gtid_mode参数由ON状态,因为此版本中还存在一些BUG会导致MySQL不可用。