如何在不重新启动MySQL的情况下启用MySQL的慢查询日志?

我按照这里的说明: http : //crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/但似乎只设置阈值。

我需要做其他任何事情,如设置文件path?

根据MySQL的文档

如果没有为--log-slow-queries给出file_name值,则默认名称为 
 HOST_NAME-的slow.log。 服务器除非在数据目录中创build文件 
给出一个绝对path名来指定一个不同的目录。 

运行

 显示variables 

不表示任何日志文件path,我没有看到我的服务器上的任何慢速查询日志文件…

编辑

看起来我正在使用服务器版本5.0.77,所以我需要做的:

  SET GLOBAL log_slow_queries = 1; 

但我得到:错误1238(HY000):variables“log_slow_queries”是一个只读variables

我假设我将需要重新启动服务器,并在我的configuration中设置log_slow_queries?

尝试SET GLOBAL slow_query_log = 'ON'; 也许FLUSH LOGS;

这假定你正在使用MySQL 5.1或更高版本。 如果您使用的是较早版本,则需要重新启动服务器。 这在MySQL手册中有logging 。 您可以在configuration文件或命令行中configuration日志。

对于版本<5.1的慢速查询,以下configuration适用于我:

 log_slow_queries=/var/log/mysql/slow-query.log long_query_time=20 log_queries_not_using_indexes=YES 

还要注意把它放在configuration文件的[mysqld]部分下,然后重新启动mysqld

查找日志启用或不?

 SHOW VARIABLES LIKE '%log%'; 

设置日志: –

 SET GLOBAL general_log = 'ON'; SET GLOBAL slow_query_log = 'ON'; 

MySQL手册 – 慢查询日志文件

这声明您可以运行以下设置慢日志文件(从5.1.6开始):

 set global slow_query_log_file = 'path'; 

variablesslow_query_log只是控制它是否被启用。

这些工作

 SET GLOBAL LOG_SLOW_TIME = 1; SET GLOBAL LOG_QUERIES_NOT_USING_INDEXES = ON; 

破坏我的设置5.1.42

 SET GLOBAL LOG_SLOW_QUERIES = ON; SET GLOBAL SLOW_QUERY_LOG = ON; set @@global.log_slow_queries=1; 

http://bugs.mysql.com/bug.php?id=32565

看起来最好的办法是设置log_slow_time非常高,从而closures慢查询日志。 降低log_slow_time以启用它。 对log_queries_not_using_indexes使用相同的技巧(设置为OFF)。

我认为这个问题是确保MySQL服务器拥有该文件的权限并且可以对其进行编辑。

如果你可以让它有权访问该文件,那么你可以尝试设置:
SET GLOBAL slow_query_log = 1;

如果不是,则在更改configuration文件后,可以始终“重新加载”服务器。 在Linux上,通常是/etc/init.d/mysql reload

这应该在mysql> 5.5上工作

SHOW VARIABLES like'%long%';

SET GLOBAL long_query_time = 1;

如果要启用常规错误日志和慢查询错误日志

开始logging表格而不是文件

mysql> set global log_output =“TABLE”; 启用通用和慢查询日志

mysql> set global general_log = 1; mysql> set global slow_query_log = 1; 日志默认完成的表名

mysql> select * from mysql.slow_log; mysql> select * from mysql.general_log; 有关更多详情,请访问此链接

http://easysolutionweb.com/technology/mysql-server-logs/