文档解释
Error number: 4013; Symbol: ER_CANT_USE_ANONYMOUS_TO_GTID_WITH_GTID_MODE_NOT_ON; SQLSTATE: HY000
Message: Replication cannot start%s with ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL| as this server uses @@GLOBAL.GTID_MODE ON.
ER_CANT_USE_ANONYMOUS_TO_GTID_WITH_GTID_MODE_NOT_ON是MySQL在操作使用了GTID模式,但是匿名登录时出现的错误,它正常的错误编号为4013,跟之对应的SQLSTATE是HY000。
错误说明
ER_CANT_USE_ANONYMOUS_TO_GTID_WITH_GTID_MODE_NOT_ON错误发生的时候,MySQL数据库表示当前用户使用的是GTID模式,但是用户未提供GTID信息,MySQL数据库需要GTID信息来进行复制事务,或者在跨主机上执行全局事务,未提供GTID信息就会出现这个错误。
常见案例
ER_CANT_USE_ANONYMOUS_TO_GTID_WITH_GTID_MODE_NOT_ON错误在使用GTID模式时尤其容易出现。GTID模式是用来开启MySQL复制功能,这样可以将一个MySQL主服务器上的数据实时复制到多个从服务器上,这样从而提高了MySQL的可用性、可伸缩性、安全性等,让MySQL尽量做到最高的可靠性,但是在使用GTID模式的时候,一定要先把GTID的模式打开,然后在进行下面的操作,否则的话就会出现一个4013错误,提示无法以匿名方式使用GTID。
解决方法
ER_CANT_USE_ANONYMOUS_TO_GTID_WITH_GTID_MODE_NOT_ON最常见的解决方法就是开启GTID模式,使用下面的语句查看GTID模式是否已经被打开:
SELECT @@GLOBAL.GTID_MODE ;
如果结果集是OFF,说明GTID模式未启用,此时就可以使用下面的SQL语句将它开启:
SET @@GLOBAL.GTID_MODE = ON;
然后,使用 show master status; 来查看主服务器上的GTID信息,并将它们复制到从服务器上去,将从服务器的GTID_MODE设置为 ON。
总的来说,ER_CANT_USE_ANONYMOUS_TO_GTID_WITH_GTID_MODE_NOT_ON错误的解决方法就是开启GTID模式,再将 GTID 信息复制到从服务器上。