直接查询 @@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 = ON<br>slow_query_log_file = /var/log/mysql/mysql-slow.log<br>long_query_time = 1.0/var/log/mysql/ 目录必须存在,且属主为 mysql:mysql(不是 root),否则 MySQL 启动时跳过日志初始化不要用 ~ 或环境变量,MySQL 不解析 shell 路径缩写如果用 Docker,宿主机挂载的目录需提前 chown 999:999 /host/path(MySQL 官方镜像默认 uid=999)如何验证慢查询日志真正在记录(绕过"以为开了其实没写"的陷阱)别只看文件是否存在,要确认内容实时更新。最稳妥方法是手动触发一条慢查询:SELECT SLEEP(2);然后立刻检查日志文件末尾:tail -n 5 /var/log/mysql/mysql-slow.log正常应看到类似: Ideogram Ideogram是一个全新的文本转图像AI绘画生成平台,擅长于生成带有文本的图像,如LOGO上的字母、数字等。
相关推荐
weixin_4597539420 分钟前
golang如何实现Trace上下文传播_golang Trace上下文传播实现思路weixin_4440129330 分钟前
PHP 中逻辑或(--)运算符的正确使用与条件逻辑重构指南iAm_Ike7 小时前
Go 中自定义类型与基础类型间的显式类型转换详解iuvtsrt7 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】旦莫7 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容tongluowan0078 小时前
MySQL中列数量及长度-liming-8 小时前
单片机设计_串口调试工具鹿角片ljp8 小时前
从告警检测到智能研判:SQL 注入研判模型的设计与实践知识领航员8 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景小新同学^O^10 小时前
简单学习 --> Spring事务