MySQL 数据库在主从复制中配置从服务器时 Slave_IO_Running对象项为 Connecting 而不是 YES 导致主从不能同步复制


一、起因

  • 笔者初次练习 MySQL 数据库的主从复制,在进行到配置从服务器,启动同步后,在查看从服务器的相关信息时,出现了以下现象:
    mark
  • 可以看到,Slave_IO_Running 项对应的是 Connectint,而不是 YES,我去有道词典翻译了以下,是连接着的意思,所以没有太在意
  • 后面配置第二台从服务器时对应选项是 YES,这个时候我就起疑心了,计算机是不会骗人的,一定是我有什么问题
  • 我配置完两个从服务器后测试主从复制,果然,第一台服务器主从复制不成功

二、排错

一般 Slave_IO_Running 不是 YES 有以下几种可能性

1.网络不通

  • 这个是最基本的,网络连通性有问题,那你就是配了个空气
ping www.baidu.com
#向百度网址发包测试网络连通性
  • 我这个没问题

2.my.cnf 配置有问题

  • 我这个没问题,id 号也没有重复
vim /etc/my.cnf

vim /etc/my.cnf
server-id = 2						
#修改,注意id与Master的不同,两个Slave的id也要不同
relay-log=relay-log-bin
#添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log-index=slave-relay-bin.index
#添加,定义中继日志文件的位置和名称
systemctl restart mysqld
#重启服务以生效

3.主机 IP 地址、主机名及密码、二进制文件名和偏移量不对

  • 我最终排查是这里出了问题,不够细心,IP 地址填错了(哭)
  • 作为一名运维人员大家一定要细心细心再细心!!
mysql -uroot -p[密码]
#登录数据库

#配置同步
CHANGE master to master_host='192.168.126.11',
master_user='myslave',
master_password='123123',
master_log_file='master-bin.000001',
master_log_pos=604;

#分别对应master主机的IP,用户名,密码
#以及之前主机的二进制文件名与偏移量
  • 忘了master主机的二进制文件及偏移量看这里!
#转至master主机,进入数据库查看二进制文件名和偏移量
show master status;

4.防火墙没有关闭

  • 防火墙:呵呵,没想到吧,又是我
  • 我这个也没问题
systemctl stop firewalld
systemctl disable firewalld
#关闭防火墙(及开机禁用)
setenforce 0
#关闭安全访问控制机制

三、解决方法

#在从服务器的数据库停止已经启动的绑定
stop slave

#重置绑定
reset master

#执行配置主机同步的命令
CHANGE master to master_host='192.168.126.11',
master_user='myslave',
master_password=sword='123123',
master_log_file='master-bin.000001',
master_log_pos=1576;
#这个偏移量是可变量

start slave
#启动同步

#再次查看状态
show slave status\G

mark

  • 再去测试主从复制,就能成功了
  • 泪目

猜你喜欢

转载自blog.csdn.net/weixin_51486343/article/details/113745163