MySQL Connections休眠的时间“太长”?


38

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

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

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

注意:

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


Answers:


53

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

两者默认均为28,800秒(8小时)。

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

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

您必须按照以下步骤进行设置my.cnfmysqld重新启动后生效):

[mysqld]
interactive_timeout=180
wait_timeout=180

如果您不想重新启动mysql,请运行以下两个命令:

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;

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


所以在/etc/my.cnf中,我只想输入wait_timeout=180
Patrick

@Patrick是的,但是您需要将Interactive_timeout和wait_timeout都设置为180。我更新了您的回答。
RolandoMySQLDBA 2011年

该文件可能是在其他地方dev.mysql.com/doc/refman/5.1/en/option-files.html这些选项可能不会explicited(自己写他们)
nicolallias
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.