查看二进制日志的摘录,可以看出这两个语句是按时间顺序写入日志的:
#160628 17:32:46 server id 2220 end_log_pos 64812204 Query thread_id=157061 exec_time=0 error_code=0
SET TIMESTAMP=1467153166/*!*/;
UPDATE `table` SET `field` = "a";
/*!*/;
# at 64812204
--
#160628 17:32:36 server id 2220 end_log_pos 64895850 Query thread_id=157062 exec_time=0 error_code=0
SET TIMESTAMP=1467153156/*!*/;
UPDATE `table` SET `field` = "b";
/*!*/;
# at 64895850
无法弄清楚如何在代码块内部突出显示,但重要的部分是:
first statement - end_log_pos 64812204, SET TIMESTAMP=1467153166
second statement - end_log_pos 64895850, SET TIMESTAMP=1467153156
所以这导致主设备和从设备去同步,因为主设备最后运行第一个语句,而从设备最后运行第二个语句。
任何人都可以帮我找出原因吗?我注意到thread_id 157062的所有语句都是先执行的,但是在使用thread_id 157061之后写入日志。
感谢您的帮助。