MySQL 核心日志文件主要有4类,分别对应不同的数据记录与运维需求,具体作用如下:
1. 二进制日志(Binary Log)
核心作用:记录所有数据修改操作(如 INSERT/UPDATE/DELETE、表结构变更 ALTER TABLE 等),不记录查询操作(如 SELECT)。
关键用途:
实现 主从复制:主库通过二进制日志将数据变更同步到从库,保证主从数据一致。
用于 数据恢复:当数据库误操作(如误删表)时,可通过二进制日志恢复到指定时间点的数据。
2. 慢查询日志(Slow Query Log)
核心作用:记录执行时间超过指定阈值(默认 long_query_time=10 秒,可自定义)的 查询语句,以及未使用索引的查询(需开启 log_queries_not_using_indexes)。
关键用途:
sql
定位 性能瓶颈:帮助开发者/运维人员识别执行缓慢的 SQL,针对性优化(如加索引、重构 SQL)。
3. 错误日志(Error Log)
核心作用:记录 MySQL 服务器的 启动、关闭、运行过程中的关键事件与错误信息,例如:
动时配置加载失败、端口被占用。
运行中内存不足、表损坏、权限错误等致命/警告级别的问题。
关键用途:
排查 服务启动失败、运行崩溃 等故障,是 MySQL 运维排错的核心日志。
4. 通用查询日志(General Query Log)
- 核心作用:记录 MySQL 服务器接收的 所有 SQL 请求,包括查询(SELECT)、修改(INSERT 等)、连接/断开等操作,无论语句是否执行成功。
关键用途:
sql
追踪 业务操作轨迹(如定位某条数据是谁修改的)、排查 异常 SQL 请求(如恶意查询)。
注意:该日志会快速占用磁盘空间,默认关闭,仅在需要精准追踪操作时临时开启。