MySQL Error number: MY-011512; Symbol: ER_GRP_RPL_NO_SUITABLE_PRIMARY_MEM; SQLSTATE: HY000

文档解释

Error number: MY-011512; Symbol: ER_GRP_RPL_NO_SUITABLE_PRIMARY_MEM; SQLSTATE: HY000

Message: Unable to set any member as primary. No suitable candidate.

错误说明:

MY-011512(ER_GRP_RPL_NO_SUITABLE_PRIMARY_MEM)错误是MySQL的一个以“ER_GRP_RPL_NO_SUITABLE_PRIMARY_MEM”为代码的错误,对应的SQLSTATE为“HY000”。该错误表明组复制中没有合适的主节点成员。节点无法同步当前组内所有成员状态,而无法定位组内的主节点。

常见案例

此错误常见于尝试使用组复制的MySQL服务器时出现的情况。组复制可以用于MySQL集群的高可用性实现,在出现故障时,确保MySQL数据服务在某种程度上不受影响。根据MySQL文档,在系统中有一台MySQL实例时,才能启动组复制,该组只有一台MySQL实例时,它不能复制,也不能选择。这就会导致此错误。

解决方法:

1. 首先先确定MySQL版本。MySQL 5.7及更高版本支持组复制,而MySQL 5.6及更低版本不支持组复制。如果您需要使用组复制,请确保当前的MySQL版本至少为5.7。

2. 此错误的根本原因是在组中没有可用的主内存。查找已存在的组中的其他节点,并确保正确配置了一个主节点,以便其他节点可以从主节点复制。如果确认已存在主节点,请验证主节点的正确性。可以通过更改“默认选择”参数来显式地指定组中的主节点。

3. 此错误可能也会由于MySQL节点之间的网络通信延迟导致,因为不可能在有限的时间内发现集群中的主节点。如果该错误是由于网络延迟所致,请确保集群中的所有节点之间都具备良好的网络连接,并调整MySQL进程之间的超时参数和同步时间参数等。

4. 另外,如果当前MySQL集群中没有正确设置一个主实例,也会出现此错误。可以通过更改“默认选择”参数,将可靠的MySQL实例设置为主实例,以确保组复制能够正常工作。

5. 该错误也可能是由于MySQL服务器不正确关闭所引起的,此时需要重置MySQL节点,以便确认MySQL节点是否能够正常关闭并排除组复制错误。

你可能感兴趣的