我有3个服务器的MySQL组复制。其中之一遇到错误,并且由于连接到施主服务器的错误而无法在复制列表中恢复其联机状态。
[Repl]通道'group_replication_recovery'的从属I / O:错误 连接至主机'repl @ PRIV_IP_HERE:3306'-重试时间:60 重试:1,错误代码:MY-002061
我在所有3台服务器上重新初始化了组复制。在第一台服务器上引导复制列表正常运行,但是其他两台服务器均无法成功加入该组(处于RECOVERING状态)。
如何解决此组复制恢复过程?
答案 0 :(得分:1)
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。