通过MySQL8.0创建复制用户(default_authentication_plugin=caching_sha2_password),change master+start slave建立复制关系后,会报slave_io_running线程ERROR
场景复现:
环境准备:
主:10.239.3.65
从:10.239.3.73
mysql:Percona mysql 8.0.15-6
创建复制用户:
create user repl@'10.239.3.%' identified by '123456';grant replication slave,replication client on *.* to repl@'10.239.3.%';
登录从库10.239.3.65建立复制关系:
change master to master_host='10.239.3.65',master_user='repl',master_password='123456',master_auto_position=1;start slave;
show slave status结果:
会发现IO线程状态异常,出现该问题后,通过客户端连接登录该用户后,IO线程异常会消失
从库执行:mysql -urepl -p123456 -h10.239.3.65登录后,发现复制状态已经好了。。。
解决方法:
①将复制用户plugin改回mysql_native_password
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
②建立复制前,先通过客户端登录该用户,“激活“后再建立复制。
③如果一定要用caching_sha2_password创建复制用户,master和slave必须同时设置成支持SSL加密链接。