下面是介绍在使用mysql数据库主从同步时碰到的一些问题解决方法,如果你碰到此问题可以进入参考,希望文章对各位有所帮助.
查看从库的状态:mysql>show slave statusG;
其中Slave_IO_Running:Yes 表明同步IO是否在运行;Slave_SQL_Running:Yes 表明同步SQL是否在运行;Last_Error表明上次出错的内容。
今天碰到一条出错的SQL,内容如下:
Last_Error: Error ‘Duplicate entry ’14772680-15′ for key ‘PRIMARY” on query. Default database: ‘xxxxxxxx’. Query: ‘UPDATE pre_forum_post SET position=position+’14′ WHERE `tid` IN(’14772680′,’14773058′)’
这条语句导致了从库出错,slave的SQL停止.
执行mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;跳过冲突的记录.
然后再重启slave
mysql>stop slave
mysql>start slave
如果碰到Slave_IO_Running:No的话,说明是主从的IO没有运行起来,今天发现另外一台很久没使用的DB也是这个情况,就把他重启了.
错误提示为:[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
在主库上查看主库的状态:mysql>show master status;
列出一条记录,很简单的信息,代码如下:
- +——————+———–+————–+——————+
- |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
- +——————+———–+————–+——————+
- |mysql-bin.002323|121077462|||
- +——————+———–+————–+——————+
然后在从库上执行:
mysql>stop slave;
mysql>change master to master_log_file=’mysql-bin.002323′,master_log_pos=121077462;
mysql>start slave; //phpfensi.com
再次查看从库的状态:mysql>show slave statusG;发现正常.
另外今天碰到了一个诡异的现象,就是mysql停掉后启动不起来了,报错:
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
#/usr/bin/mysql_safe
之后就正常了,停掉safe模式再启动即可.
#service mysql start