MySQL的binlog(Binary Log)是记录数据库所有更改操作的日志文件,主要用于数据恢复、主从复制等场景。要启用并正确配置binlog,需修改MySQL的配置文件,并设置相关参数。
1. 启用Binlog日志
要开启binlog,必须在MySQL的配置文件中进行设置。配置文件通常位于:
Linux: /etc/my.cnf 或 /etc/mysql/my.cnf Windows: my.ini在[mysqld]段落下添加以下配置:
server-id=1log-bin=mysql-bin
binlog-format=ROW
说明:
server-id:用于标识MySQL实例,在主从复制中必须唯一,单机可设为1。 log-bin:指定binlog文件的前缀,如mysql-bin会生成mysql-bin.000001等文件。 binlog-format:推荐使用ROW模式,更安全且便于精确恢复;也可选STATEMENT或MIXED。2. 配置可选参数
根据需要,可以添加以下常用参数:
expire-logs-days=7max-binlog-size=1G
binlog-do-db=mydb
# binlog-ignore-db=mysql
说明:
expire-logs-days:自动清理超过指定天数的binlog(新版建议使用 expire_logs_days 或通过 SQL 设置)。 max-binlog-size:单个binlog文件最大大小,达到后自动切换到下一个文件。 binlog-do-db:只记录指定数据库的更改(谨慎使用,跨库操作可能有遗漏)。 binlog-ignore-db:忽略某些数据库的记录。3. 重启MySQL服务
保存配置文件后,重启MySQL服务使设置生效:
# Linux系统sudo systemctl restart mysql
# Windows系统
net stop mysql
net start mysql
4. 验证Binlog是否启用
登录MySQL执行以下命令:
SHOW VARIABLES LIKE 'log_bin';SHOW VARIABLES LIKE 'server_id';
SHOW MASTER STATUS;
如果log_bin显示为ON,且SHOW MASTER STATUS返回当前binlog文件信息,则配置成功。
5. 查看与管理Binlog文件
binlog文件默认存放在MySQL数据目录下(可通过datadir查看)。可用如下命令查看:
-- 查看所有binlog文件SHOW BINARY LOGS;
-- 查看具体日志内容(调试用)
SHOW BINLOG EVENTS IN 'mysql-bin.000001' LIMIT 10;
也可使用mysqlbinlog工具解析文件:
mysqlbinlog mysql-bin.000001 | more基本上就这些。配置完成后,MySQL会持续写入binlog,注意定期清理旧日志避免磁盘占满。
