MySQL核心日志包括binlog(Server层逻辑日志,用于复制与恢复)、redo log(InnoDB物理日志,保障持久性)和undo log(InnoDB逻辑日志,支撑回滚与MVCC)。

MySQL 日志是数据库运行过程中的“记事本”,记录各类操作、状态和异常,对故障排查、性能优化、数据恢复和主从同步至关重要。不同日志由不同模块生成、作用各异,有些在 Server 层,有些在 InnoDB 引擎层。
核心三大事务/归档日志
这是开发和 DBA 最需掌握的底层日志,直接支撑 ACID 特性:
- binlog(二进制日志):Server 层生成,逻辑日志,记录所有 DDL(如 CREATE、ALTER)和 DML(如 INSERT、UPDATE、DELETE)语句(不记录 SELECT)。用于主从复制、基于时间点的数据恢复、审计回溯。格式可选 STATEMENT / ROW / MIXED。
- redo log(重做日志):InnoDB 引擎层生成,物理日志,记录数据页的修改(比如“将页 X 的偏移 Y 处值改为 Z”)。保证事务持久性(crash-safe),崩溃后能前滚未刷盘的脏页。采用循环写入方式,由 ib_logfile0/ib_logfile1 等文件组成。
- undo log(回滚日志):InnoDB 引擎层生成,逻辑日志,保存事务修改前的旧值(如“原值是 100”)。支撑事务回滚和 MVCC(多版本并发控制),使读操作不加锁也能看到一致性快照。
常用运维与诊断类日志
这类日志默认关闭,按需开启,主要用于监控、审计和排障:
新视窗企业管理系统是一款小巧、实用、利于后续开发的ASP程序。适合大中小型企业的网站建设。1、新闻管理 2、产品管理 3、订单管理 4、广告管理 5、下载管理 6、留言管理 8、单页栏目(如企业简介,资质荣誉)9、人才招聘等等。 新视窗企业管理系统 5.1 更新日志:1、修改产品列表的图片自动缩略,防止图片变形.2、修改后台添加产品分类时,排序ID不写入数据库的错误.3、修改首页企业简介的链接地址
-
error log(错误日志):记录 MySQL 启动、运行、关闭过程中的严重警告、错误及崩溃信息。路径由
log_error参数指定,是排查启动失败或异常退出的第一依据。 -
slow query log(慢查询日志):记录执行时间 ≥
long_query_time(默认 10 秒)的 SQL,也可配置为记录未使用索引的查询。配合pt-query-digest或 MySQL 自带的mysqldumpslow分析效果更佳。 - general log(通用查询日志):记录客户端连接、断开及所有执行的 SQL(含 SELECT)。开启后 I/O 压力明显上升,仅建议临时开启用于复现问题或审计场景。
主从复制相关日志
专用于复制链路,通常无需手动干预,但理解其流转有助于诊断同步延迟或中断:
-
relay log(中继日志):从库上保存的 binlog 临时副本。IO 线程从主库拉取 binlog 写入 relay log,SQL 线程再从中读取并执行。文件名形如
hostname-relay-bin.000001,位置由relay_log参数控制。
其他补充说明
部分资料提到的“数据定义语句日志”“查询日志”等,实际属于 general log 或 binlog 的子集范畴;所有日志(除 binlog、relay log、redo log 是二进制格式外)默认为纯文本,便于人工查看。开启任一日志都会带来额外磁盘 I/O 和 CPU 开销,生产环境应避免长期全量开启 general log 或低阈值 slow log。









