开发者

mysql的binlog三种配置模式小结

开发者 https://www.devze.com 2024-08-12 12:14 出处:网络 作者: 文盲青年
cat /etc/my.cnf [mysqld] [client] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci

cat /etc/my.cnf

[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:记录js所有的修改操作为 rojsw-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文件的最大尺寸。

到此这篇关于mysql的binlog三种配www.devze.com置模式小结的文章就介绍到这了,更多相关mysql binlog配置内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号