MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
服务器使用多种日志格式在二进制日志中记录信息:
MySQL中的复制功能最初是基于从源到副本的SQL语句的传播。这就是所谓的基于语句的日志记录。您可以通过启动服务器来使用此格式
--binlog-format =语句
。在基于行的日志(默认值),源将事件写入二进制日志,表示单个表行如何受到影响。您可以通过启动它来使服务器使用基于行的日志记录
--binlog-format =行
。还有第三种选择:混合伐木。使用混合日志记录,默认情况下使用基于语句的日志记录,但在某些情况下,日志记录模式将自动切换到如下所述的某些情况。您可以通过启动显式使用MySQL使用混合日志记录mysqld.用选项
——binlog-format =混合
。
日志格式也可以由所使用的存储引擎设置或限制。这有助于消除在使用不同存储引擎的源和副本之间复制某些语句时出现的问题。
使用基于语句的复制,可能会复制非eterministic语句的问题。在决定是否对基于语句的复制是安全的,MySQL是否可以保证是否可以使用基于语句的日志记录来复制语句。如果MySQL无法进行此保证,则标志着声明是可能不可靠的,并发出警告,声明可能无法安全地登录声明格式。
您可以通过使用MySQL的行基复制来避免这些问题。