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;
感谢 散尽浮华大佬的技术文档支持。全文链接如下,侵联删。