感兴趣的话大家可以关注一下公众号 : 猿人刘先生 , 欢迎大家一起学习 , 一起进步 , 一起来交流吧!
1. 环境说明
主机IP : 192.168.154.146
从机1IP : 192.168.154.147
从机2IP : 192.168.154.148
2.故障记录
当使用Navicat工具打开这三个数据库时 , 发现主库和从库的数据不同
3.排查过程-(Slave_IO_Running状态为Connecting)
3.1 网络是否互通
互ping三台机器 , 看机器之间相互能否ping通
这里发现三台机器都能够相互ping通 , 所以排除网络原因
3.2 检查my.cnf文件
192.168.154.146
192.168.154.147
192.168.154.148
可以看到配置文件也是没有错误的 , 所以排除这种可能性
3.3 防火墙是否关闭
排除防火墙未关闭的原因
3.4 主服务器mysql权限
主服务器已设置% , 所以排除这种情况
3.5 file文件名、pos偏移量不对
可以看到 , 问题就出现在了这里 , 之前可能重启过一次服务 , 所以pos也随之变换了
3.5.1 解决方法
(1).关闭slave线程
stop slave;
(2).修改pos
change master to master_host='192.168.154.146', master_user='root', master_password='root', master_log_file='master-bin.000064', master_log_pos=3032;
(3).启动slave线程
start slave;
这个时候查询slave状态 , 神奇的发现不是Connecting , 变为No了 , 这个时候我们开启下一次的排查
4. 排查过程-(Slave_IO_Running状态为No)
可看到这儿有错误log
4.1 查看server_uuid是否相同
可以进入目录 : /var/lib/mysql 查看 auto.cnf , 也可以使用如下命令
show variables like '%server_uuid%';
查询之后发现 所有UUID都相同
4.2 删除所有的auto.cnf
rm -rf /var/lib/mysql/auto.cnf
4.3 重启服务
这个时候查看从库状态 , 发现都为YES , 自此问题解决
来源地址:https://blog.csdn.net/qq_45001002/article/details/128343697