一、起因
- 笔者初次练习 MySQL 数据库的主从复制,在进行到配置从服务器,启动同步后,在查看从服务器的相关信息时,出现了以下现象:
- 可以看到,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
- 再去测试主从复制,就能成功了
- 泪目