MySQL等待超时没有过期,我希望它过期

问题描述 投票:0回答:4

我已经阅读了 MySQL 文档,问题并没有回答我的问题。 访问问题 1访问问题 2 - 连接轮询和面临错误访问问题3

我在 db Exchange 上的问题

我已经将MySQL的

GLOBAL wait_timeout
设置为
600
秒,这意味着它将在10分钟后结束。正如我测试的那样,它在 14 分钟内结束;我附上了响应错误图像。

这是设置全局的图像

wait_timeout

现在发生了什么?我已经访问了一些实现连接轮询的问题,在那里我找到了一些解决方案。 但是当我执行这些解决方案时,

wait_timeout
停止工作。这让我很头疼。我希望
wait_timeout
在我设定的时间结束,但它没有结束。看到下面的图片
wait_timeout
没有得到更新

mysql connection
4个回答
1
投票

特别注意,

SET GLOBAL
(对于nost设置)对当前登录的用户没有影响。之后登录的任何人都将继承它。

wait_timeout
很棘手。交互式/批处理,全局/会话/尚未重新登录。

抱歉,但我不知道在什么情况下设置哪个。


0
投票

经过一些研究,我找到了一些信息

wait_timeout
是一个全局变量,用于设置空闲客户端连接的超时时间。它适用于所有客户端连接,无论使用何种协议(包括 X 协议连接)。当客户端连接空闲(即不执行任何查询)的时间超过指定的
wait_timeout
时,服务器将关闭连接。

mysqlx_interactive_timeout
也是一个全局变量,用于设置使用 MySQL X 协议的交互式会话的超时时间。它仅适用于 X 协议连接,用于设置客户端和服务器之间交互会话的最长持续时间。交互式会话定义为已发出至少一条语句但未发出需要更长超时的语句的会话,例如长时间运行的查询或事务。当超过
mysqlx_interactive_timeout
值时,会话被服务器关闭。

mysqlx_wait_timeout
是另一个全局变量,它为使用 MySQL X 协议的客户端连接设置超时。它仅适用于 X 协议连接,用于设置客户端等待服务器发送响应的最长持续时间。当超过
mysqlx_wait_timeout
值时,客户端连接被服务器关闭。

总之,

wait_timeout
设置空闲客户端连接的超时时间,
mysqlx_interactive_timeout
设置使用 X 协议的交互式会话的超时时间,
mysqlx_wait_timeout
设置使用 X 协议的客户端连接等待响应的超时时间.


0
投票

我试过运行这个命令

SHOW GLOBAL VARIABLES;
。 它向我展示了这三个变量设置为
wait_timeout
mysqlx_interactive_timeout
=> 这是与 MySQL X 协议相关的参数,这是 MySQL 8.0 中引入的用于 MySQL 文档存储的新协议。它用于设置使用 X 协议的交互式会话的超时。具有与 wait_timeout=28800 相同的值

mysqlx_wait_timeout
是另一个与 MySQL X Protocol 相关的参数,用于设置使用 X Protocol 的客户端连接的超时时间。具有与 wait_timeout=28800 相同的值。


0
投票

好吧,经过更深入的研究后,我发现我的错误是没有使用工作台和

wait_timeout
工作知识,所以这就是我发现的。

只要在当前会话中更新了全局变量但未提交,MySQL 就会显示持久值而不是真实值(在终端中)。 (但可以看到它在工作台中发生了变化。)

工作台图片

意味着在终端中,

同时进行

当使用

SET GLOBAL
命令更改全局变量时,会立即对当前会话进行更改,但不会保存到 MySQL 配置文件中。如果结束会话或重新启动 MySQL 服务器,将使用变量的原始值。

© www.soinside.com 2019 - 2024. All rights reserved.