From 1669041d567a1eb58d666cdc953be614d417f6e0 Mon Sep 17 00:00:00 2001 From: asahi Date: Wed, 18 Sep 2024 12:48:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E8=AF=BBmysql=20binlog=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mysql/mysql文档/bin log.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mysql/mysql文档/bin log.md b/mysql/mysql文档/bin log.md index 375e1fd..848edf9 100644 --- a/mysql/mysql文档/bin log.md +++ b/mysql/mysql文档/bin log.md @@ -20,5 +20,25 @@ binary log能兼容程序的意外中止,只有已完成的event或transaction 写入binary log中的statement如果包含密码,密码将会被server重写,binary log中不会出现密码的明文。 +### binary log variable +#### binlog_encryption +binary log和relay log可以被加密,用于保护这些日志文件的数据安全。可以通过`binlog_encryption`变量来设置binary log是否被加密。 + +#### log_bin +通过`log_bin`可以设置binary log是否被启用,`log_bin`环境变量默认为`ON`,是启用的。 + +如果要在启动mysqld时禁用binary log,可以在`my.cnf`中指定`skip-log-bin`或`disable-log-bin`。 + +可以通过`--log-bin[=base_name]`来指定binary log file的base name。如果没有指定`--log-bin`选项,那么base name默认为`binlog`(binary log文件名为`binlog.xxxxx`。 + +mysqld会在base name之后追加数字将其作为binlog的文件名称,每次创建新的binlog文件时,数字都会递增。mysqld会在如下场景下创建新的binlog文件: +- mysql server执行`start`或`restart`操作 +- server对log进行`flush`操作 +- 当前log大小达到`max_binlog_size`的大小 + +如果在事务中写入大量数据,那么binlog的大小可能会大于`max_binlog_size`,因为同一个事务中的event只会被记录到一个binlog中,不会写入到多个binlog中。 + + +