日期:2014-05-16  浏览次数:20672 次

MYSQL 事件不同步(疑难)
主的MYSQL有事件每隔一段1分钟调用存储过程从而操作主数据库,主数据库的记录变化,从的也跟着变化。
问题来了:
show master status;
show slave status;

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes

show variables like '%event%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
主从的状态都正常,而且我在主数据库进行操作的时候,从的数据库完全可以正常同步。
为什么会经常性的不事件同步?按道理本来是每隔1分钟就会出现从表有数据改变的!
这个问题问了好几次了,没有解决方法,每次都要重启主的才可以,很麻烦。

------解决方案--------------------
select status from mysql.event;
master上的应该是enables,slave应该是'SLAVESIDE_DISABLED'


Field: status
Type: enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')
Null: NO
Key: 
Default: ENABLED
------解决方案--------------------
对于事件EVENT来说,在主上执行时,写入到BINLOG的是EVENT里面具体的SQL语句,EVENT只是负责调度,如果这个EVENT在从上也是ENABLED状态,就会出现SQL在从上执行2次(1次MASTER同步的,1次是SLAVE自己调度的),这个需要特别注意。

事件不执行,这个问题以前也看到过别人提过,但是MYSQL文档里面没有做任何说明,EVENT推出已经很久了,使用的人也不少,这个问题是个基础的功能性问题,如果有BUG,早就大面积爆发了。
------解决方案--------------------
手动之下下 event_scheduler执行的sql语句看看
------解决方案--------------------
贴出你的EVENT创建语句。