MYSQL主从不同步的低级错误,寻找到的解决办法
昨晚升级MYSQL5.4,一切正常,感觉确实速度比以前快。
但没有想到的快结束时,出现了两个意外
1、一台MYSQL停止不了服务,那时可能还有程序在写入,我就先SLAVE STOP后,杀死MYSQL进程
结果,这台MYSQL无法恢复,导致innodb大量回滚,不断自动重新启动MYSQL
2、当把上面问题解决后,结果两台MYSQL无法主从同步了,显示如下状态
Slave_IO_Running: NO
Slave_SQL_Running: Yes
查看日志如下:
090915 11:20:33 [ERROR] Error reading packet from server: Could not find first log file name in binary log index file ( server_errno=1236)
090915 11:20:33 [ERROR] Got fatal error 1236: ‘Could not find first log file name in binary log index file’ from master when reading data from binary log
其实这个问题是一个老生常谈的问题,解决办法也简单
一是权限问题,二是重新定位一下MASTER位置
可是一直解决不了…
最后,发现是由于logfile多写了一空格,如下:
change master to master_host=’192.168.X.XXX’, master_user=’rep’, master_password=’password’,master_log_file=’binlog.000001 ‘,master_log_pos=8843;
实际应该是
change master to master_host=’192.168.X.XXX’, master_user=’rep’, master_password=’password’,master_log_file=’binlog.000001′,master_log_pos=8843;
3、第二步问题解决了,结果出现了
Slave_IO_Running: YES
Slave_SQL_Running: NO
并报出,有重复记录,无法插入的提示信息
解决这个问题,也有两个办法,一是在my.cnf里加
slave-skip-errors=1062
二是,直接执行
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
跳过一步,不作同步,根据情况可以设置多步。