在我的网站上使用MySQL
作为后端,同时执行网站..在某个阶段我得到的错误为Too many connections
。
使用类文件处理mysql
个事务。在该类文件中,我有一个用于关闭连接的子,如下所示:
Public Sub CloseConn()
ConnDB.Close()
ConnDB.Dispose()
End Sub
收到错误后我将重新启动mysql以继续操作。在mysql管理员中我可以看到所有连接状态都是Sleep
。我怎样才能以编程方式杀死昏昏欲睡的连接?
答案 0 :(得分:1)
mysqld将根据两(2)个服务器选项超时数据库连接:
interactive_timeout
wait_timetout
默认情况下两者都是28800秒(8小时)。
您可以在/etc/my.cnf
中设置这些选项如果您的连接是持久的(通过mysql_pconnect打开),您可以将这些数字降低到600(10分钟)甚至60(1分钟)的合理范围。或者,如果您的应用程序运行正常,您可以保留默认值。这取决于你。
你必须在my.cnf中设置如下(在mysql重启后生效):
[mysqld]
interactive_timeout=180
wait_timeout=180
如果您不想重新启动mysql,请运行以下两个命令:
SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;