我使用的是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控制台中,它没有被修改,为什么?
发布于 2013-03-21 15:31:55
您正在设置全局系统变量,但查询的是会话变量。要使全局变量设置在当前会话中生效,需要重新连接或设置@@SESSION.long_query_time变量。(请注意,默认情况下显示变量会显示会话变量。)
下面是一个示例:
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 |
+-----------------+-----------+MySQL 8.0引入了SET PERSIST ..语法,它可以帮助您保持动态设置的配置。请参阅MySQL 8.0 manual
发布于 2013-03-21 15:25:36
更改mysql中的系统变量值(cfr。http://dev.mysql.com/doc/refman/5.1/en/set-statement.html)不会更改已连接到会话的客户端的值。
更改将一直持续到服务器重新启动、后续更改或会话到期。
有关更多详细信息,请参阅http://bugs.mysql.com/bug.php?id=38704
https://stackoverflow.com/questions/15541603
复制相似问题