自动杀死不活动的mysql连接

时间:2018-03-26 17:48:10

标签: mysql

我正在尝试了解有关mysql连接的更多信息。

以下是我执行的几个步骤。

1)点击服务器API几次并检查。

data_final <- cbind(data_ID, data_rev)

2)然后我停止了呼叫服务器。并为mysql设置以下2条规则。

mysql> SHOW STATUS WHERE variable_name = 'Max_used_connections';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 15     |
+----------------------+-------+
1 row in set (0.00 sec)

3)我等了2分钟,事情没有改变。

SET GLOBAL interactive_timeout = 120;
SET GLOBAL wait_timeout = 120;

我不明白如何在一段时间后丢弃所有不活动的连接?

2 个答案:

答案 0 :(得分:1)

你对什么&#34; Max_used_connections&#34;的假设?是的,可能是错的。

根据这个:https://dba.stackexchange.com/questions/28644/why-does-max-used-connections-status-not-get-refreshed-automatically-once-it-rea

max used connections是自服务器启动以来同时使用的最大连接数的计数。这意味着所使用的最大连接的值不会因为您手动强制关闭连接而停止运行。

您需要解决的下一件事是您不需要关闭所有连接。只要你的应用程序代码写得正确,它就会关闭&#34;完成后的连接。 MySQL将保持&#34;关闭&#34;在池中打开连接,以便下次应用程序打开时重新使用它。与MySQL的连接。如果没有这种池化和重用,实际打开连接的行为很快就会成为应用程序运行中最昂贵的部分。

答案 1 :(得分:0)

查看详情, https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout 表示thread_timeout用于“终止连接”。为了有效,my.cnf-ini必须具有为您的要求设置的全局值,然后完成shutdown / restart将管理在wait_timeout或interactive_timeout到期后消除连接。当aborted_connections增加至少1时,一条线索将显示在SHOW GLOBAL STATUS LIKE'aborted_%'中。当你设置了GLOBAL wait_timeout = 120和interactive_timeout = 120时,这只是为了将来的连接和你正在查看的连接是使用my.cnf-ini的超时创建;