binlog_format = STATEMENT和CURRENT_TIMESTAMP,带有MySQL复制

当binlog_format设置为STATEMENT时,MySQL从属实例可以为同一ID具有不同的行值,并且我们插入以下内容:

insert into foo values(CURRENT_TIMESTAMP)

据我了解,如果复制滞后,则从属读取SQL语句并执行该语句,这可能导致同一行的差异.对还是错 ?

如何避免这种情况?

谢谢.

解决方法:

您的方法在语句级复制中是绝对安全的. TIMESTAMP写入二进制日志,因此CURRENT_TIMESTAMP的值将在主机和从机上保持一致,即使从机在后面也是如此.出于相同的原因,您也可以安全地使用NOW()函数.

避免使用的函数是SYSDATE(),它将不使用二进制日志中的TIMESTAMP,因此从站的值将表示该语句何时在从站上运行,而不是何时在主表上运行.

上一篇:An Overview of PG & MySQL Cross Replication


下一篇:MySQL-从“显示主状态”查询中选择值