A-A+

mysql数据库主从同步的问题解决方法

2017年10月17日 PHP技术文章 暂无评论 阅读 0 views 次

下面是介绍在使用mysql数据库主从同步时碰到的一些问题解决方法,如果你碰到此问题可以进入参考,希望文章对各位有所帮助.

查看从库的状态:mysql>show slave statusG;

其中Slave_IO_Running:Yes 表明同步IO是否在运行;Slave_SQL_Running:Yes 表明同步SQL是否在运行;Last_Error表明上次出错的内容。

今天碰到一条出错的SQL,内容如下:

  1. 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;

列出一条记录,很简单的信息,代码如下:

  1. +——————+———–+————–+——————+   
  2. | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |   
  3. +——————+———–+————–+——————+   
  4. | mysql-bin.002323 | 121077462 |              |                  |   
  5. +——————+———–+————–+——————+   

然后在从库上执行:

  1. mysql>stop slave;  
  2.   
  3. mysql>change master to master_log_file=’mysql-bin.002323′,master_log_pos=121077462;  
  4.   
  5. mysql>start slave; //www.xiariboke.net  

再次查看从库的状态:mysql>show slave statusG;发现正常.

另外今天碰到了一个诡异的现象,就是mysql停掉后启动不起来了,报错:

  1. Starting MySQL. ERROR! Manager of pid-file quit without updating file.  
  2.   
  3. #/usr/bin/mysql_safe  

之后就正常了,停掉safe模式再启动即可.

#service mysql start

标签:

给我留言