MySQL Binlog 是 MySQL 的二进制日志文件,用于记录数据库操作日志,包括对数据库表的数据修改操作。它主要用于数据库的主从复制和增量恢复。
Binlog 文件是二进制格式的,不能直接被人类阅读,需要使用特定的工具进行解析查看。例如,可以使用 mysqlbinlog 工具查看 Binlog 文件的内容。
开启 Binlog 会对数据库性能产生轻微的损耗,但这种性能损耗在开启日志后带来的好处面前可以忽略不计。同时,为了保护日志中的敏感信息不被外部攻击者获取泄露,需要对 Binlog 进行加密处理。
在 MySQL 中,可以通过以下方式开启和设置 Binlog:
在 MySQL 配置文件(my.cnf 或 my.ini)中设置以下参数:
csharp复制代码[mysqld]...log-bin=mysql-binbinlog_format=row
其中,log-bin=mysql-bin
表示启用二进制日志,并指定日志文件名的前缀为 mysql-bin
。binlog_format=row
表示使用行级别的日志格式。
2. 在 MySQL 命令行中执行以下命令开启 Binlog:
sql复制代码SET GLOBAL binlog_format=row;
在 MySQL 命令行中执行以下命令查看当前 Binlog 的配置:
sql复制代码SHOW VARIABLES LIKE 'log_bin';SHOW VARIABLES LIKE 'binlog_format';
注意:开启 Binlog 后,数据库中的所有修改数据的操作都会被记录到 Binlog 中,包括 SELECT 和 SHOW 操作。因此,如果不需要记录这些操作,可以在 MySQL 配置文件中设置 log_bin_basename
参数,指定只记录更新数据的操作。同时,为了防止 Binlog 被外部攻击者利用,需要对 Binlog 进行加密处理,可以在 MySQL 配置文件中设置 binlog_encrypt
参数为 ON 来启用加密。