通过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结果:

记一例MySQL 8.0复制用户BUG_java


会发现IO线程状态异常,出现该问题后,通过客户端连接登录该用户后,IO线程异常会消失

从库执行:mysql -urepl -p123456 -h10.239.3.65登录后,发现复制状态已经好了。。。


记一例MySQL 8.0复制用户BUG_java_02


解决方法:

①将复制用户plugin改回mysql_native_password

ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '123456';


②建立复制前,先通过客户端登录该用户,“激活“后再建立复制。


③如果一定要用caching_sha2_password创建复制用户,master和slave必须同时设置成支持SSL加密链接。