2

我有 3 台服务器的 MySQL 组复制。其中一个遇到错误,由于连接到供体服务器时出错,无法在复制列表中恢复其 ONLINE 状态。

[Repl] 通道“group_replication_recovery”的从 I/O:连接到主“repl@PRIV_IP_HERE:3306”时出错 - 重试时间:60 次重试:1,错误代码:MY-002061

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

如何修复此组复制恢复过程?

4

1 回答 1

2

MY-002061 是身份验证错误。

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

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

要使用通过 caching_sha2_password 插件进行身份验证的帐户连接到服务器,您必须使用安全连接或支持使用 RSA 密钥对进行密码交换的未加密连接,如本节后面所述。

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

mysql_ssl_rsa_setup

然后更新每台服务器上的 MYSQL 配置以在组复制恢复期间请求供体服务器的公钥(而不是存储受信任公钥的本地副本,这需要更多工作但可以防止 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

于 2018-12-07T15:09:17.247 回答