我目前有超过 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/