docker 配置mysql8主从复制出现的问题

Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. Error_code: MY-002061

主从复制出现:Slave_IO_Running: Connecting

原因

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

解决办法

方法1:修改创建的slave账号身份验证插件

ALTER USER slave IDENTIFIED WITH caching_sha2_password BY 'password';
或者
ALTER USER slave IDENTIFIED WITH sha256_password BY '1234';

在这里,我看到其他人的帖子,change master的时候,多加了一个参数GET_MASTER_PUBLIC_KEY=1,但是我没有加,也出现两个yes。详细点击:blog

方法2:master的my.cnf配置添加,重启

如果您的MySQL安装必须为8.0前客户端提供服务,并且您在升级到MySQL 8.0或更高版本后遇到兼容性问题,那么解决这些问题并恢复8.0前兼容性的最简单方法是重新配置服务器以恢复到之前的默认身份验证插件
default_authentication_plugin=mysql_native_password

Access denied for user 'slave'@'127.0.0.1' (using password: YES), Error_code: MY-001045

我是:master_ip应该写docker 中master的ip地址。
docker inspect mysql-master


如果你出现类似问题,一般就是配置的参数出现等原因,查看账号,密码,权限,ip,port,等配置的参数。

master_host:主数据库的IP地址;

master_port:主数据库的运行端口;

master_user:在主数据库创建的用于同步数据的用户账号;

master_password:在主数据库创建的用于同步数据的用户密码;

master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;

master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;

master_connect_retry:连接失败重试的时间间隔,单位为秒。

master执行:show grants for 'slave'@'%';  查看创建的slave用户权限。

你可能感兴趣的:(docker 配置mysql8主从复制出现的问题)