MySQL 连接睡眠“太长”多长时间?

Pat*_*ick 41 mysql mysql-5

我登录到我的服务器来检查数据库的状态,并注意到SHOW PROCESSLIST;有大量非常旧的连接正在休眠。

在此处输入图片说明 在连接应该被杀死之前,连接时间限制应该持续多长时间?

如何在 MySQL 5.0.51a-3ubuntu5.4 中设置时间限制?

笔记:

我正在使用 PHP 5.2.x 和 symfony 框架 1.2。

Rol*_*DBA 61

mysqld 将根据两个服务器选项超时数据库连接:

默认情况下,两者都是 28,800 秒(8 小时)。

您可以将这些选项设置在 /etc/my.cnf

如果您的连接是持久的(通过 打开mysql_pconnect),您可以将这些数字降低到合理的值,例如 600(10 分钟)甚至 60(1 分钟)。或者,如果您的应用程序运行良好,您可以保留默认设置。这取决于你。

必须在my.cnfmysqld重启后生效)中进行如下设置:

[mysqld]
interactive_timeout=180
wait_timeout=180
Run Code Online (Sandbox Code Playgroud)

如果不想重启mysql,那么运行这两个命令:

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;
Run Code Online (Sandbox Code Playgroud)

这不会关闭已经打开的连接。这将导致新连接在 180 秒内关闭。