首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我不能在运行时更改变量long_query_time变量

为什么我不能在运行时更改变量long_query_time变量
EN

Stack Overflow用户
提问于 2013-03-21 15:19:36
回答 2查看 30.1K关注 0票数 33

我使用的是MySQL版本5.1.66。我看到long_query_time变量是动态的,但是当我尝试

代码语言:javascript
复制
set GLOBAL long_query_time=1; 

在上面的操作之后,我再次尝试

代码语言:javascript
复制
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

在mysql控制台中,它没有被修改,为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-21 15:31:55

您正在设置全局系统变量,但查询的是会话变量。要使全局变量设置在当前会话中生效,需要重新连接或设置@@SESSION.long_query_time变量。(请注意,默认情况下显示变量会显示会话变量。)

下面是一个示例:

代码语言:javascript
复制
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

票数 65
EN

Stack Overflow用户

发布于 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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15541603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档