mysql安装完成后配置日志文件与慢查询日志

3次阅读

MySQL 默认关闭 general_log,通过 SELECT @@general_log 查看(0 关 / 1 开);slow_query_log 需手动启用并配置 long_query_time、slow_query_log_file 等参数,注意权限与 log_output 模式。

mysql 安装完成后配置日志文件与慢查询日志

确认 MySQL 是否已启用 general_log

安装完 MySQL 后,默认通常 general_log 是关闭的,它记录所有执行的 SQL 语句,适合调试但不建议长期开启。检查是否启用:

SELECT @@general_log;

返回 0 表示关闭;1 表示开启。日志文件路径由 general_log_file 变量决定:

SELECT @@general_log_file;

常见默认值是 /var/lib/mysql/hostname.log(Linux)或 C:ProgramDataMySQLMySQL Server X.XDatahostname.log(Windows)。若需开启,执行:

SET GLOBAL general_log = 1;

注意:该设置重启后失效,要永久生效需写入 配置文件

配置 slow_query_log 文件路径与阈值

慢查询日志是性能分析的关键,必须显式配置才能生效。先确认当前状态:

SELECT @@slow_query_log, @@long_query_time, @@slow_query_log_file;

@@slow_query_log0 表示未启用;@@long_query_time 默认是 10.000000 秒,对线上服务通常过高,建议调为 10.5@@slow_query_log_file 若为空,MySQL 会自动生成(如 /var/lib/mysql/hostname-slow.log),但路径不可控。永久配置需编辑 my.cnf(Linux)或 my.ini(Windows),在 [mysqld] 段添加:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

注意:log_queries_not_using_indexes 会额外记录没走索引的查询,可能显著增大日志体积,仅调试期建议开启。

确保日志目录存在且 MySQL 有写权限

MySQL 进程(通常是 mysql 用户)必须对日志路径有写权限,否则启动失败或日志静默丢失。常见错误现象:

  • MySQL 无法启动,错误日志中出现 Can't open the mysql.plugin tableFile'/var/log/mysql/mysql-slow.log' not found (Errcode: 13)
  • 手动执行 SET GLOBAL slow_query_log = 1 返回成功,但文件始终为空

解决方法

sudo mkdir -p /var/log/mysql
sudo chown mysql:mysql /var/log/mysql
sudo chmod 755 /var/log/mysql

Windows 下需确认 MySQL 服务以具有写权限的账户运行(如 Local System 或指定用户),并确保路径所在磁盘未设只读属性。

验证日志是否真实写入

配置修改后必须重启 MySQL(sudo systemctl restart mysqldsudo service mysql restart),不能仅靠 SET GLOBAL。验证方式:

  • 执行一条明显超时的查询:
    SELECT SLEEP(2);

    再检查 slow_query_log_file 对应文件末尾是否有新条目

  • tail -f /var/log/mysql/mysql-slow.log 实时观察(Linux)
  • 注意:如果启用了 log_output = TABLE(默认是 FILE),日志会写入 mysql.slow_log 表,而非文件,此时需查表:
    SELECT * FROM mysql.slow_log ORDER BY start_time DESC LIMIT 5;

真正生效的标志是:查询时间 ≥ long_query_time、且日志文件(或表)中出现对应记录。

配置慢日志最易忽略的是权限和 log_output 模式切换——前者导致日志“静默失败”,后者让日志不见于文件却存在于表中,排查时容易误判为配置无效。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-07发表,共计1771字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。