Error number: 4014; Symbol: ER_CANT_COMBINE_ANONYMOUS_TO_GTID_AND_AUTOPOSITION; SQLSTATE: HY000
Message: The options ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL| and SOURCE_AUTO_POSITION = 1 cannot be used together.
错误说明:
ER_CANT_COMBINE_ANONYMOUS_TO_GTID_AND_AUTOPOSITION是MySQL中的一种错误,提示不能将匿名来源与GTID或GTID自动定位结合。就是将GTID模式和GTID自动定位启用,而在MySQL中又有匿名来源,导致不能结合,导致报错。
当MySQL实例采用GTID模式的replication时,而在MySQL中又存在下面几种情况时,以下3种情况会导致报此错误:
1.历史server-id不存在,比如,slave上的server_id = 32, 但当前是重新安装的,并不存在历史实例信息,或者故障切换到其它机器时;
2.有从库拒绝通过GTID模式复制,比如一个3节点集群,受影响的从库如果在其他两个节点播种,然后使用GTID模式复制,会失败;
3.历史transaction日志文件名不一致,比如在master上新添加一个从库,但库中的旧日志文件名与master上的不一样,会导致无法同步。
解决方法:
1.如果是由于历史server-id不存在,可以清理这个从库上的binlog文件,然后重新加入gtid模式中。
2.如果是由于有从库拒绝通过GTID模式复制,可以将受影响的从库从GTID模式中移除,然后使用传统的复制方式恢复。
3.如果是由于历史transaction日志文件名不一致,请将从库上的binlog文件名改为与主库相同,然后将从库重新加入GTID模式。