广告位联系
返回顶部
分享到

mysql的binlog三种配置模式小结

Mysql 来源:互联网 作者:佚名 发布时间:2024-07-03 22:27:41 人浏览
摘要

cat /etc/my.cnf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [mysqld] [client] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci init-connect=SET NAMES utf8 character-set-server = utf8 # port=13000 server-id=1 binlog_format=ROW log_bin=/tmp/

cat /etc/my.cnf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[mysqld]

 

[client]

    default-character-set=utf8

[mysqld]

    collation-server = utf8_unicode_ci

    init-connect='SET NAMES utf8'

    character-set-server = utf8

    # port=13000

    server-id=1

    binlog_format=ROW

    log_bin=/tmp/mysql-bin.log

[mysql]

    default-character-set=utf8

binlog_format的值有3个选项:MIXED、ROW、STATEMENT

  • MIXED:默认设置。允许记录 row-based 和 statement-based 格式的日志。如果一个语句不能以 row-based 格式安全地记录(例如,涉及到自动递增字段或者时间函数),MySQL 将自动使用 statement-based 格式。

  • ROW:记录所有的修改操作为 row-based 格式。会记录每行数据的具体变化,而不是执行的 SQL 语句。这对于复制(replication)非常有用,因为它可以确保即使在主服务器和从服务器上的数据类型或者表结构有微小差异时,复制也能正常工作。

  • STATEMENT:记录所有的修改操作为 statement-based 格式。记录的是执行的 SQL 语句,而不是每行数据的具体变化。这种格式的日志文件通常比 row-based 格式小,但是在某些情况下,比如涉及到自动递增字段或者时间函数时,可能会导致复制时出现问题。

具体选哪种看需求:

如果想要确保数据的一致性,设置 binlog_format 为 ROW。
如果你更关心日志文件的大小,并且确信你的应用场景不会导致 statement-based 复制的问题,可选择STATEMENT。

配置参考:

log_bin = /var/log/mysql/mysql-bin.log:启用binlog并指定路径和文件名。
binlog_format = STATEMENT:设置binlog的格式,可以是STATEMENT、ROW、MIXED。
expire_logs_days = 7:设置binlog文件的过期时间。
max_binlog_size = 100M:设置单个binlog文件的最大尺寸。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计