2013-03-21 40 views
22

我正在使用MySQL版本5.1.66。我看到long_query_time变量是动态的,但是当我试图为什么我无法在运行时更改变量long_query_time变量

set GLOBAL long_query_time=1; 

上述操作后,我又试了一次

mysql> show variables like 'long_query_time'; 
+-----------------+-----------+ 
| Variable_name | Value  | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 
1 row in set (0.00 sec) 

从MySQL控制台它是没有得到改变,为什么呢?

回答

42

您设置一个全球性的系统变量,但你查询会话变量。为使GLOBAL变量设置在当前会话中生效,您需要重新连接或设置@@ SESSION.long_query_time变量。 (请注意,SHOW VARIABLES默认显示会话变量。)

下面是一个例子:

mysql> SHOW SESSION VARIABLES LIKE "long_query_time"; 
+-----------------+-----------+ 
| Variable_name | Value  | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 

mysql> SET @@GLOBAL.long_query_time = 1; 

mysql> SHOW GLOBAL VARIABLES LIKE "long_query_time"; 
+-----------------+----------+ 
| Variable_name | Value | 
+-----------------+----------+ 
| long_query_time | 1.000000 | 
+-----------------+----------+ 

mysql> SHOW VARIABLES LIKE "long_query_time"; 
+-----------------+-----------+ 
| Variable_name | Value  | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 
+0

谢谢可变long_query_time时间,所以我知道,当我们尝试显示变量像“long_query_time”它正在显示会话变量 – 2013-03-21 07:35:29

+0

非常真实,我没有想到这一点。谢谢 – 2017-04-11 14:43:32

相关问题