文档解释
Error number: MY-013690; Symbol: ER_SLAVE_ANONYMOUS_TO_GTID_IS_LOCAL_OR_UUID_AND_GTID_MODE_NOT_ON; SQLSTATE: HY000
Message: Replication channel ‘%s’ is configured with ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS=’%s’, which is invalid when GTID_MODE ON. If you intend to use GTID_MODE = ON everywhere, change to ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = OFF and use the procedure for enabling GTIDs online (see the documentation). If you intend to use GTIDs on this replica and cannot enable GTIDs on the source, enable GTID_MODE = ON and leave ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL|. If you intend to not use GTIDs at all in the replication topology, change to ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS=OFF and leave GTID_MODE = ‘%s’.
MySQL Error number: MY-013690; Symbol: ER_SLAVE_ANONYMOUS_TO_GTID_IS_LOCAL_OR_UUID_AND_GTID_MODE_NOT_ON; SQLSTATE HY000是指MySQL在事务复制时,发生的错误。其中,GTID是一种全局事务ID,可以帮助MySQL在多实例之间更好地共享事务,在复制模式下有效。
错误说明:
MY-013690; 标识符: ER_SLAVE_ANONYMOUS_TO_GTID_IS_LOCAL_OR_UUID_AND_GTID_MODE_NOT_ON; 指的是MySQL中,从服务器应该运行事务时,全局事务ID(GTID)模式没有启用。这意味着当服务器尝试使用不同的唯一标识符进行复制时,查询将失败。
常见案例
开发人员在配置MySQL数据库从服务器时,经常会遇到这个错误。例如,如果从服务器尝试使用非GTID模式进行数据复制,则Err SLAVE ANONYMOUS TO GTID IS LOCAL OR UUID AND GTID MODE NOT ON错误将发生。
解决方法:
开发人员可以使用以下步骤解决此类错误:
(1)确保服务器GTID模式已正确启用。要在MySQL服务器上启用GTID模式,您必须确保在启动MySQL服务器时指定正确的gtid_mode参数。
(2)无论是MySQL 5.7版本还是8.0版,请确保从服务器的gtid_mode和master_info_repository参数指定了正确的值。
(3)如果您的MySQL复制拓扑中有多个从服务器,请确保将所有从服务器的gtid_mode和master_info_repository参数显式设置为相同的值。
(4)如果您的主服务器正在运行的MySQL版本高于您的从服务器,请确保将所有从服务器的gtid_mode和master_info_repository参数显式设置为与主服务器相同的值。
(5)在MySQL 5.7.6及更高版本中,您还可以使用“reset master”和“reset slave all”命令重置GTID模式,以便正确地传递复制作业元数据。
(6)在MySQL 5.7.6及更高版本中,可以使用GTID克隆技术来重置MySQL复制拓扑,以便以正确的GTID模式传递复制作业元数据,而无需使用“reset master”和“reset slave all”命令。
如果MySQL服务器上的GTID模式未正确启用,则会出现Err SLAVE ANONYMOUS TO GTID IS LOCAL OR UUID AND GTID MODE NOT ON错误消息。开发人员可以采用上述步骤确保MySQL服务器上的GTID模式已正确启用,并解决此类< /p>