如何配置mysql日志_mysql日志开启方式

来源:这里教程网 时间:2026-02-28 20:34:35 作者:

MySQL 日志主要分为错误日志、查询日志(General Log)、慢查询日志(Slow Query Log)和二进制日志(Binary Log),不同日志用途不同,开启方式也略有差异。配置前建议先确认 MySQL 版本(

SELECT VERSION();
),部分参数在 8.0+ 有调整。

开启错误日志(error log)

错误日志默认已开启,记录启动、关闭、严重警告和错误信息。位置通常由

log_error
参数指定,可通过以下命令查看:

查看当前路径:

SHOW VARIABLES LIKE 'log_error';

修改方法(需重启或动态设置,取决于版本):

my.cnf
(Linux)或
my.ini
(Windows)的
[mysqld]
段添加:
log_error = /var/log/mysql/error.log
MySQL 8.0.14+ 支持动态修改(无需重启):
SET PERSIST log_error = '/var/log/mysql/error.log';

开启通用查询日志(general log)

记录所有执行的 SQL 语句(含 SELECT),适合调试但影响性能,不建议长期开启。

启用方式:

临时开启(会话级或全局,重启失效):
SET GLOBAL general_log = ON;

SET GLOBAL log_output = 'FILE';
(输出到文件)或
'TABLE'
(写入
mysql.general_log
表)
永久开启(需配置文件):
[mysqld]
下添加:
general_log = ON

general_log_file = /var/log/mysql/general.log

开启慢查询日志(slow query log)

记录执行时间超过

long_query_time
的 SQL,默认阈值为 10 秒,可调低用于优化排查。

配置步骤:

检查是否启用:
SHOW VARIABLES LIKE 'slow_query_log';
临时启用:
SET GLOBAL slow_query_log = ON;

SET GLOBAL long_query_time = 1;
(设为 1 秒)
永久配置(推荐):
slow_query_log = ON

slow_query_log_file = /var/log/mysql/slow.log

long_query_time = 1

log_queries_not_using_indexes = ON
(可选,记录未走索引的查询)

开启二进制日志(binary log)

用于主从复制和基于时间点的数据恢复,生产环境通常必须开启。

配置要点:

必须设置
server_id
(唯一整数),否则无法启用:
server_id = 1
启用并指定文件名前缀:
log_bin = /var/lib/mysql/mysql-bin
可选限制大小与过期天数:
max_binlog_size = 100M

expire_logs_days = 7
(MySQL 8.0+ 推荐用
binlog_expire_logs_seconds = 604800

配置完成后务必重启 MySQL 服务(

systemctl restart mysqld
)或确认动态生效。所有日志路径需确保 MySQL 进程有读写权限,且磁盘空间充足。不复杂但容易忽略。

相关推荐