先确认 binlog 是否开启,再用 SHOW 命令查看日志文件和状态,最后通过 mysqlbinlog 工具 解析内容。具体步骤:1. 执行 SHOW VARIABLES LIKE ‘log_bin’ 确认 binlog 状态;2. 使用 SHOW BINARY LOGS 查看日志文件列表;3. 运行 SHOW MASTER STATUS 获取当前日志文件及位置信息;4. 用 mysqlbinlog 命令解析指定文件,支持按时间或位置筛选,并可导出到文件;5. 根据需要使用 PURGE 或 RESET 命令清理日志。注意权限、路径及生产环境操作风险。

在 MySQL 中查看 binlog 日志,需要先确认 binlog 是否开启,然后通过命令行 工具 查看具体内容。以下是具体操作步骤和常用方法。
1. 确认 binlog 是否开启
登录 MySQL 后,执行以下命令查看 binlog 状态:
SHOW VARIABLES LIKE ‘log_bin’;
如果返回值为 ON,说明 binlog 已启用;如果是 OFF,则需要修改 配置文件(my.cnf 或 my.ini)开启:
[mysqld]
log-bin=mysql-bin
server-id=1
修改后重启 MySQL 服务生效。
2. 查看当前的 binlog 文件列表
使用以下命令查看所有可用的 binlog 文件:
SHOW BINARY LOGS;
或简写为:
SHOW MASTER LOGS;
会列出类似 mysql-bin.000001、mysql-bin.000002 的文件名及其大小。
3. 查看当前正在使用的 binlog 文件
执行以下命令查看当前写入的 binlog 文件名:
SHOW MASTER STATUS;
该命令还会显示当前的日志位置(position)、Binlog 格式等信息。
4. 使用 mysqlbinlog 工具查看日志内容
MySQL 提供了一个名为 mysqlbinlog 的命令行工具,用于解析并查看 binlog 文件内容。
基本语法如下:
mysqlbinlog mysql-bin.000001
常见用法示例:
- 指定时间范围查看日志:
- 从指定位置查看日志:
- 将解析结果输出到文件便于查看:
mysqlbinlog –start-datetime=”2025-04-01 00:00:00″ –stop-datetime=”2025-04-01 12:00:00″ mysql-bin.000001
mysqlbinlog –start-position=1234 –stop-position=5678 mysql-bin.000001
mysqlbinlog mysql-bin.000001 > binlog_output.txt
注意:mysqlbinlog 工具通常位于 MySQL 的 bin 目录下(如 /usr/bin/mysqlbinlog 或安装目录下的 bin/),需确保系统 PATH 已包含该路径。
5. 清理 binlog 日志
长时间运行的 数据库 会产生大量 binlog 文件,可手动清理旧日志释放空间:
RESET MASTER; — 删除所有 binlog,重置索引(慎用,生产环境避免) PURGE MASTER LOGS TO ‘mysql-bin.000005’; — 删除指定文件之前的所有日志 PURGE MASTER LOGS BEFORE ‘2025-04-01 00:00:00’; — 按时间删除
基本上就这些。只要 binlog 开启,用 SHOW 命令查状态,再用 mysqlbinlog 工具解析文件,就能清楚看到每条操作记录。不复杂但容易忽略权限和路径问题。


