mysql 主从 binlog_format_主从 binlog_format 设置关系

1. 主库是row,从库必须是row/mixed。如果是statement,主库有变更时,从库报如下错误(无论什么变更都报错,如insert/update/delete/alter等):

Last_Error: Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'

2. 主库是statement,从库可以是任意模式(statement/mixed/row),但可能造成数据不一致,故不建议使用。

3. 主库是mixed,从库必须是row/mixe格式。如果从库是statement,主库一般情况下修改数据,从库不报错。特殊情况下,则从库报如下错误。

Last_Error: Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'

以上所说的一般情况是:主库将binlog记录为statement格式。

以上所说的特殊情况是:主库将binlog记录为row格式。具体为以下几种:

(1) 当时用UUID()函数时

(2) 当一个或多个拥有AUTO_INCREMENT列的表被更新同时有‘trigger’或者‘stored function’被调用时

(3) 执行INSERT DELAYED时

(4) 当视图里的某一部分需要row-based复制(例如UUID())时,创建该视图的语句被改为row-based

(5) 使用用户自定义函数(UDF)时

(6) 当某语句被判定为row-based,并且执行它的session需要用到临时表,则session下的所有子语句都将以ROW格式记录

(7) 当使用USER(),CURRENT_USER()或者 CURRENT_USER

(8) 当语句引用了一个或多个system variables。

(9) 当使用LOAD_FILE()

mysql将mixed记录为row的几种情况,请参考官方文档:

https://dev.mysql.com/doc/refman/5.7/en/binary-log-mixed.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值