直接查询 @@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上的字母、数字等。
相关推荐
java_prinln2 分钟前
RAG 面试题介绍威哥爱编程5 分钟前
Python 智能体开发实战 06:一个函数里塞了八百行?用状态机把批改流程拆成能回退的步骤考虑考虑10 分钟前
瀚高数据库dishugj41 分钟前
oracle日志切换三条命令区别Patrick在香港1 小时前
一个斜杠,把毫秒变成十几秒悟道书生1 小时前
(一)Navicate为什么转存结构和数据只转存表而不包含建库?2601_967980111 小时前
Python 初学者必备的常用内置函数OnlineProxy1 小时前
移动应用数据爬取:通过模拟器与流量嗅探对 API 进行逆向工程染指11101 小时前
162.Agent-LangGraph-检查点的作用赤龙ERP2 小时前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家