自己遇到的mysql主从同步错误及解决

数据库主从同步做了有1年,期间遇到一些错误,自己查资料摸索解决
和大家分享一下

1 如果:Slave_IO_Running=NO,Slave_SQL_Running=YES,Last_Errno=0
mysql> slave stop ;
mysql> slave start;
mysql> show slave status ;
如果Slave_IO_Running=YES,Slave_SQL_Running=YES,Last_Errno=0
那么,数据库的replication已经成功启动。

如果提示有duplicated数据,直接delete那条数据之后的,然后
mysql> slave stop ;
mysql> slave start;
mysql> show slave status ;
如果Slave_IO_Running=YES,Slave_SQL_Running=YES,Last_Errno=0
那么,数据库的replication已经成功启动。


2 如果: Slave_IO_Running=YES,Slave_SQL_Running=NO,Last_Errno>0 
这个问题,基本上是因为数据库的replication的状态文件被删除引起的。
解决方法:
2、1)      mysql> show slave status ; 
2、2)      查看Last_Error,的值(基本上是一个replication产生的SQL语句)
2、3)      如果你确定ERROR里面的SQL对数据没有太大的影响,执行下面的步骤,否则,请跟相关人员确定这个SQL对数据库的影响有多大。
2、4)      mysql> slave stop ; 
2、5)      mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
2、6)      mysql > slave start ; 
2、7)      mysql > show slave status ;
2、8)      如果 Slave_IO_Running=YES,Slave_SQL_Running=YES,
Last_Error=0 。
那么数据的replication状态已经恢复。
否则,从2、1 ) 重新开始做。直到replication状态恢复。

3 如果还不行,查看错误日志,看看是卡在那个binlog上了,比如 : 卡在000079
则:
SLAVE STOP;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000080', MASTER_LOG_POS=0;
SLAVE START;


4 如果错误提示: [mysql]Table tblName is marked as crashed and should be repaired
Mysql提示tblName表格已损坏,需要修复,解决方法:
进入到对应的数据库目录:
cd /var/lib/mysql/dbname
使用myisamchk修复:
shell> myisamchk -r tblName
如果提示failed
shell> myisamchk -f tblName
强制修复
恢复时间比较长,耐心等待修复完成
然后重启mysql就行
 

你可能感兴趣的:(mysql)