mysql如何开启慢查询日志_mysql性能监控环境配置

张开发
2026/6/3 12:50:54 15 分钟阅读
mysql如何开启慢查询日志_mysql性能监控环境配置
直接查询 slow_query_log 变量值是最可靠方式若为 0 则日志未启用即使配置文件设置了 slow_query_log ON 也可能因权限或路径问题静默失败。如何确认 MySQL 慢查询日志当前是否启用直接查 slow_query_log 变量值是最可靠的方式而不是依赖配置文件是否存在相关项。执行SELECT slow_query_log, slow_query_log_file, long_query_time;如果返回 slow_query_log 为 0说明日志实际未开启哪怕 my.cnf 里写了 slow_query_log ON 也没用——MySQL 启动时可能因权限、路径不可写等原因静默失败。slow_query_log_file 默认路径常为 /var/lib/mysql/hostname-slow.log但若目录不存在或 MySQL 用户无写权限日志会创建失败且不报错long_query_time 默认是 10.0 秒对 Web 应用来说完全没意义建议调成 0.5 或 1.0支持小数动态开启可执行 SET GLOBAL slow_query_log ON;但重启后失效持久化必须写进配置文件并重启 mysqldmy.cnf 中必须写的三行配置含路径与权限避坑只加 slow_query_log ON 是不够的。以下三项需同时存在且顺序无关但路径必须显式指定slow_query_log ONbrslow_query_log_file /var/log/mysql/mysql-slow.logbrlong_query_time 1.0/var/log/mysql/ 目录必须存在且属主为 mysql:mysql不是 root否则 MySQL 启动时跳过日志初始化不要用 ~ 或环境变量MySQL 不解析 shell 路径缩写如果用 Docker宿主机挂载的目录需提前 chown 999:999 /host/pathMySQL 官方镜像默认 uid999如何验证慢查询日志真正在记录绕过“以为开了其实没写”的陷阱别只看文件是否存在要确认内容实时更新。最稳妥方法是手动触发一条慢查询SELECT SLEEP(2);然后立刻检查日志文件末尾tail -n 5 /var/log/mysql/mysql-slow.log正常应看到类似 Ideogram Ideogram是一个全新的文本转图像AI绘画生成平台擅长于生成带有文本的图像如LOGO上的字母、数字等。

更多文章