我使用的是MySQL 5.1.66版。我看到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控制台它没有被改变,为什么?
答案 0 :(得分:51)
您正在设置GLOBAL系统变量,但是您要查询SESSION变量。要使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 |
+-----------------+-----------+
答案 1 :(得分:3)
更改mysql中的系统变量值(cfr。http://dev.mysql.com/doc/refman/5.1/en/set-statement.html)不会改变已连接到会话的客户端的值。
更改将持续到服务器重新启动,后续更改或会话到期。