Mysql慢查询日志已打开但没有记录任何内容

Mysql慢查询日志已打开但没有记录任何内容

运行:
Ubuntu Server 10.04
Mysql 5.1.41

我在 /etc/mysql/my.cnf 中有以下内容

slow_query_log = 1
slow_query_log_file = /var/log/mysqld/log-slow-queries.log
long_query_time = 1

日志文件应该是可写的

drwxrwxrwx  2 mysql mysql    4096 2010-10-20 13:41 mysqld
-rwxrwxrwx  1 mysql mysql    0    2010-10-20 13:41 log-slow-queries.log

日志或 mysql.slow_log 表中未显示任何内容。看起来它已启用

mysql> show variables like '%SLOW%';
+---------------------+--------------------------------------+
| Variable_name       | Value                                |
+---------------------+--------------------------------------+
| log_slow_queries    | ON                                   |
| slow_launch_time    | 2                                    |
| slow_query_log      | ON                                   |
| slow_query_log_file | /var/log/mysqld/log-slow-queries.log |
+---------------------+--------------------------------------+
4 rows in set (0.00 sec)

这是否意味着我没有慢查询?我尝试运行,select sleep(3);但没有显示。

如果一切配置正确,我可以运行一个查询并将其显示在日志中吗?

答案1

我也遇到了同样的问题。读完这个后解决了:https://stackoverflow.com/a/11861305/686304

为了启用慢速查询日志记录,您首先需要启用常规日志记录。

只需将“general_log”设置为“ON”(在 my.cnf 中)

general_log = 1

答案2

mysql 可能正在将日志记录到表中。尝试运行

select * from mysql.slow_log;

答案3

慢查询日志包含执行时间超过 long_query_time 秒的所有 SQL 语句,并且(从 MySQL 5.1.21 开始)需要检查至少 min_examined_row_limit 行。

http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

min_examined_row_limit你准备做什么?

答案4

我遇到了同样的问题,并检查了/var/log/mysql/ error.logMySQL 存储错误的路径文件。我看到日志说拒绝访问该文件的权限。

2022-07-05  9:45:10 0 [ERROR] mysqld: File '/home/debian/slow_log_file' not found (Errcode: 13 "Permission denied")
2022-07-05  9:45:10 0 [ERROR] Could not use /home/debian/slow_log_file for logging (error 13). Turning logging off for the whole duration of the MariaDB server process. To turn it on again: fix the cause, shutdown the MariaDB server and restart it.

更改文件的权限或将文件移动到 MySQL 用户可以访问的某个位置解决了我的问题。

相关内容