mysql - 如何根据 MySQL 中的用户登录设置连接超时

标签 mysql timeout

我目前有超过 100 个处于 sleep 状态的连接。

某些连接必须保持在 sleep 状态(并且不要关闭),因为它是永久连接,但其他一些连接(使用不同的用户名)来自某个 php 脚本,我希望它们很快超时。

是否可以为每个用户设置一个 wait_timeout?如果是,如何?

最佳答案

没有针对每个用户的超时配置,但您可以动态设置 wait_timeout 值。也就是说,在您作为给定用户建立连接后,您可以发出一条语句,将超时值更改为您希望该用户 session 的超时值。

在 mysql 命令行客户端中尝试以下实验:

mysql> SHOW VARIABLES LIKE 'wait_timeout';

...显示 28800(即 8 小时),这是默认的 wait_timout

mysql> SET SESSION wait_timeout = 60;
mysql> SHOW VARIABLES LIKE 'wait_timeout';

...显示 60。

然后你可以退出 session ,重新连接,默认的 wait_timeout 是 28800。所以它被限制在当前 session 的范围内。

您也可以打开第二个窗口并启动一个单独的 mysql 客户端 session ,以证明在一个 session 中更改 wait_timeout 不会影响其他并发 session 。

关于mysql - 如何根据 MySQL 中的用户登录设置连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/243644/

相关文章:

mysql - 协助正则表达式 mysql 查询

mysql - 是否可以将数据写入mysql中的复制主服务器

mySQL Order by number查询,不是按整数排序

Python:每分钟只需要请求 20 次

mysql - 分组和汇总列

mysql - SQL错误: duplicate entry for value'0' PRIMARY

JQUERY CYCLE 插件 - 'Timeout' 功能存在问题

c# - 在执行长时间运行的数据库任务时处理 Web 服务超时

java - 一段时间后关闭异步任务

c# - Telerik RadCompression 问题 - 一段时间后页面丢失 View 状态