binlog_format参数

本文介绍了MySQL中的binlog_format参数及其三个可能的值:STATEMENT、ROW和MIXED,并探讨了它们对复制过程的影响。此外,还提到了在不同MySQL版本中binlog_format的默认值变化以及设置此参数所需的权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

binlog_format参数

属性
命令行格式–binlog-format=format
系统变量binlog_format
范围全局,会话
动态
类型列举
默认值(> = 5.7.7)ROW
默认值(<= 5.7.6) STATEMENT
有效值ROW、STATEMENT、MIXED

设置二进制日志格式,binlog_format包含三个值:STATEMENT,ROW或MIXED。请参见 第16.2.1节“复制格式”。 binlog_format由–binlog-format启动时的 选项或binlog_format运行时的 变量设置。

注意:
可以在运行时更改日志记录格式,但建议您不要在复制过程中对其进行更改。这部分是因为slave库不同步;给定的MySQL服务器只能更改自己的日志记录格式。

在MySQL 5.7.7之前,默认格式是 STATEMENT。在MySQL 5.7.7及更高版本中,默认值是ROW。 例外:在NDB群集中,默认值是MIXED; NDB群集不支持基于语句的复制。

用户必须有权SUPER 设置全局binlog_format值或会话值。

当MIXED指定,基于语句的复制时,除了仅基于行的复制是保证导致正确的结果的情况。例如,当语句包含用户定义函数(UDF)或UUID() 函数时会发生这种情况。

在运行时无法切换复制格式时有例外:
1. 从存储的函数或触发器中。
2. 如果会话当前处于基于行的复制模式并且已打开临时表。
3. 试图在这些情况下切换格式会导致错误。

有关在设置每种二进制日志记录格式时如何处理存储程序(存储过程和函数,触发器和事件)的详细信息,请参见 第23.7节“存储程序的二进制日志记录”。

二进制日志格式会影响以下服务器选项的行为:
--replicate-do-db
--replicate-ignore-db
--binlog-do-db
--binlog-ignore-db

这些效果在各个选项的描述中详细讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值