MySQL8.0.13组复制恢复错误MY-002061

MySQL 8.0.13 Group Replication Recovery Error MY-002061

我有 MySQL 组复制与 3 个服务器。其中一个遇到错误,由于连接到捐赠者服务器时出错,无法在复制列表中恢复其联机状态。

[Repl] Slave I/O for channel 'group_replication_recovery': error connecting to master 'repl@PRIV_IP_HERE:3306' - retry-time: 60 retries: 1, Error_code: MY-002061

我在所有 3 台服务器上重新初始化了组复制。在第一台服务器上引导复制列表有效,但其他两台服务器都无法成功加入该组(卡在 RECOVERING 状态)。

如何解决这个组复制恢复过程?

MY-002061 是身份验证错误。

MySQL 要求任何 caching_sha2_password(复制用户的身份验证类型)受 TLS 或 RSA 保护。

https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html

To connect to the server using an account that authenticates with the caching_sha2_password plugin, you must use either a secure connection or an unencrypted connection that supports password exchange using an RSA key pair, as described later in this section.

如果您的网络安全,解决这个问题最方便的方法是创建一个 MYSQL RSA 密钥对:

mysql_ssl_rsa_setup

然后在每台服务器上更新您的 MYSQL 配置以在组复制恢复期间请求捐赠服务器的 public 密钥(而不是存储受信任的 public 密钥的本地副本这需要更多工作,但可以防止 MITM 攻击):

/etc/mysql/my.cnf

...
group_replication_recovery_get_public_key = 1
...

然后重新加载您的 MYSQL 进程并重新尝试组复制:

sudo /etc/init.d/mysql reload

mysql> START GROUP_REPLICATION;

为我工作,2018-12-07。

附加参考:https://www.digitalocean.com/community/tutorials/how-to-configure-mysql-group-replication-on-ubuntu-16-04