运行:
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.log
MySQL 存储错误的路径文件。我看到日志说拒绝访问该文件的权限。
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 用户可以访问的某个位置解决了我的问题。