开启MySQL的binlog需在my.cnf中[mysqld]下添加log-bin和server-id,推荐设binlog-format=ROW,配置expire-logs-days和max-binlog-size控制日志大小与保留时间,重启MySQL后通过SHOW VARIABLES LIKE 'log_bin';验证是否启用。

在MySQL中配置binlog(二进制日志)是实现数据恢复、主从复制等关键功能的基础。正确启用和配置binlog,能有效保障数据库的高可用与安全性。
开启binlog日志
要启用MySQL的二进制日志,需修改MySQL的配置文件my.cnf(Linux系统通常位于/etc/my.cnf或/etc/mysql/my.cnf,Windows系统为my.ini),在[mysqld]段落下添加以下配置:
- log-bin = /var/lib/mysql/binlog:指定binlog文件的路径和前缀,如不写路径则默认存放在数据目录下
- server-id = 1:设置唯一服务器ID,主从复制中必须配置,单机也可设为1
示例配置:
[mysqld] log-bin = /var/lib/mysql/binlog server-id = 1
配置binlog格式
MySQL支持三种binlog格式:STATEMENT、ROW和MIXED。推荐使用ROW格式,更安全且便于审计。
- binlog-format = ROW:记录每一行数据的变更,适合主从数据一致性要求高的场景
- 若兼容老版本或关注性能,可选MIXED
添加到配置文件中:
binlog-format = ROW
其他常用参数设置
可根据实际需求调整以下可选参数:
- expire-logs-days = 7:自动清理7天前的binlog日志
- max-binlog-size = 1G:单个binlog文件最大1GB
- binlog-do-db = dbname:仅记录指定数据库的更改(慎用,多库环境易出问题)
重启服务并验证配置
保存配置文件后,重启MySQL服务:
systemctl restart mysql
登录MySQL执行以下命令检查binlog是否启用:
SHOW VARIABLES LIKE 'log_bin';
若返回ON,表示binlog已成功开启。再执行:
SHOW MASTER STATUS;
可查看当前binlog文件名和位置,确认写入正常。
基本上就这些。配置完成后建议定期检查日志增长情况,避免磁盘被占满。合理设置过期策略,既能满足恢复需求,又节省存储空间。










