最近在配置MySQL主从同步配置的时候遇到了Slave_IO_Running:Connecting 的问题
1.问题原因:
(1)网络不通
(2)防火墙端口未开放
(3)mysql账户密码错误
(4)mysql主从机配置文件写错
(5)配置从机连接语法错误
(6)主机未开放账户连接权限
2.解决步骤:
(1)网络不通:用ping指令尝试是否可以接收到返回的数据
(2)防火墙端口未开放:
1:查看防火状态
systemctl status firewalld
service iptables status
2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4:重启防火墙
systemctl enable firewalld
service iptables restart
(3)mysql账户密码错误:用"mysql -u用户名 -p密码 -h主机ip"尝试登录主机,笔者就是这个问题,提示因为连接失败次数太多,导致远程连接被拒
解决方法:在主机执行"mysqladmin -uroot -pxxx flush-hosts ",提示不要输入明文密码可以忽略
从机再次尝试远程登录:
(4)mysql主从机配置文件写错:查看主从机配置文件 "vi /etc/my.cnf",主机配置:
从机配置:
注:确保主机配置文件中没有配置bind-address参数,该参数用于指定访问主机的ip地址
(5)配置从机连接语法错误:
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user_name',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
master_host_name : MySQL主机地址
replication_user_name : 备份账户用户名
replication_password :备份账户密码
recorded_log_file_name :bin-log的文件名
recorded_log_position : bin-log的位置(数字型)
bin-log的文件名和位置可以通过主机执行"show master status"指令查看。
(6)主机未开放账户连接权限:通过指令"select user,host from user;"查看备份账号IP访问权限是否为'%',通过"show grants for repl"查看复制账户是否拥有REPLICATION CLIENT、REPLICATION SLAVE、SUPER、RELOAD权限;
如果没有的话使用命令授权
grant REPLICATION CLIENT ON *.* TO repl;
grant REPLICATION SLAVE ON *.* TO repl;
grant SUPER ON *.* TO repl;
grant reload on *.* to repl;
FLUSH PRIVILEGES;
最后从机重启slave配置"stop slave","start slave","show slave status",问题解决
如果以上六步还不能解决您的问题,欢迎在博客下方留言讨论。