关于MySQL的slave同步状态中出现Slave_IO_Running: NO错误解决记录

mysql搭建主从同步以后,出现如下错误:

Last_IO_Errno: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'

解决思路如下:

原因1:清理数据导致主从库不同步(前提是主库的binlog日志没有被暴力删除或错误删除,即要确保正在使用的那个最新binlog文件在master主库机器上存在)。
解决办法:
1)先进入slave中执行:"slave stop;"来停止从库同步;
2)再去master中执行:"flush logs;"来清空日志;
3)然后在master中执行:"show master status;"查看下主库的状态,主要是日志的文件和position;
4)然后回到slave中,执行:"CHANGE MASTER TO ......执行同步指令
  
原因2:该错误发生在从库的io进程从主库拉取日志时,发现主库的mysql_bin.index文件中第一个文件不存在。出现此类报错可能是由于你的slave 由于某种原因停止了好长一段
时间,当你重启slave 复制的时候,在主库上找不到相应的binlog ,会报此类错误。或者是由于某些设置主库上的binlog被删除了,导致从库获取不到对应的binglog file。
解决办法:
1)为了避免数据丢失,需要重新进行slave同步操作。
2)注意主库binlog的清理策略,选择基于时间过期的删除方式还是基于空间利用率的删除方式。
3)记住最好不要使用"rm -rf"命令删除binlog file,这样不会同步修改mysql_bin.index 记录的binlog 条目。在删除binlog的时候确保主库保留了从库"show slave status"
  的Relay_Master_Log_File对应的binlog file。任何时候都不能删除正在使用的那个最新binlog文件;最好把bin-log文件不要删除,最好给备份出来。  

原因2的情况下,使用原因1的处理方案显然是解决不了的!此时的解决方案: 在从库上执行: mysql
> stop slave; mysql> reset slave; mysql> start slave; mysql> show slave status G;

感谢 散尽浮华大佬的技术文档支持。全文链接如下,侵联删。

方法来源:https://www.cnblogs.com/kevingrace/p/6261111.html

原文地址:https://www.cnblogs.com/non2019/p/15147476.html