MySQL Error number: 3990; Symbol: ER_RPL_ASYNC_RECONNECT_GTID_MODE_OFF; SQLSTATE: HY000

文档解释

Error number: 3990; Symbol: ER_RPL_ASYNC_RECONNECT_GTID_MODE_OFF; SQLSTATE: HY000

Message: Failed to enable Asynchronous Replication Connection Failover feature. The CHANGE REPLICATION SOURCE TO SOURCE_CONNECTION_AUTO_FAILOVER = 1 can only be set when @@GLOBAL.GTID_MODE = ON.

MySQL Error 3990 (ER_RPL_ASYNC_RECONNECT_GTID_MODE_OFF)属于MySQL协议错误,主要指在异步线程重新连接时,gtid_mode的值为OFF。

错误说明:

当MySQL的gtid_mode选项被设置为OFF(原来为ON)时,此常见情况下异步线程会重新连接。但是,MySQL的gtid_mode必须是ON的,以保持当前会话的GTID一致性。而且,异步线程会针对 GTID Mode 错误来报告此错误 (错误号 3990)。

常见案例

1. 如果MySQL实例已更改为OFF时,可能会出现该错误,但是从MySQL 8.0开始-gtid_mode将默认值设置为ON,因此使用MySQL 8.0及之后的版本的用户将不太可能碰到此错误。

2. 如果你的MySQL版本低于8.0,并且你在是把gtid_mode设置为OFF时,将会出现这个错误,比如my.cnf中将gtid_mode设置为OFF

3. 如果真正使用gtid(gtid_mode设置为ON),但是执行“set global gtid_mode=OFF”语句时也可能出现此错误。

解决方法:

1. 对于MySQL 8.0以前的版本,如果需要避免此错误,请务必在my.cnf文件中将gtid_mode设置为ON。

2. 如果当前MySQL版本已经是8.0或以上,可以使用gtid_mode默认值(ON)来避免此错误。

3. 如果曾经设置gtid_mode=OFF,则需要恢复gtid_mode的值,以便解决此错误,可以使用以下语句来还原gtid_mode:set global gtid_mode=on;

4. 如果出现此错误,并且不想更改gtid_mode的值,可以选择忽略错误,只需执行以下命令便可:SET GLOBALIGNORE_ERRORS = 3990

你可能感兴趣的