我有一个数据库,其中有两个用户正在连接。两者都是应用程序。现在,其中一个应用程序总是向 mysql 记录“连接过多...”。因此,我将最大连接数增加到更高的值。一天后,max_connections 是 limit + 1,因此我第二次增加。一天后,max_connections 是 limit + 1。因此,我尝试将 max_connections 设置为 220,并希望通过将 max_user_connections 设置为 100 来强制两个应用程序必须拆分连接。但同样:使用的连接数现在是 221。在 processlist 中只有两个用户正在建立连接。
如何设置 mysql 来为一个用户保留连接?
我无法使用“每小时”参数。两个系统每次都可以连接到数据库非常重要。我使用的是 suse 11 和 mysql 5.5。
问候,Wyphorn
答案1
根据 Xaqron 和 Lou 的评论,该应用程序行为不当。如果您无法更改,请将 MySQLwait_timeout
参数(在/etc/my.cnf
MySQL 配置文件中或存储该配置文件的任何地方)调整为允许应用程序在适当时间后终止空闲连接的同时运行的值(以秒为单位)。您需要确定该值可能是多少,但如果您可以进行一些实验,您可能希望从 60 秒开始并监视应用程序行为。(在那里进行更改后,您需要重新启动 MySQL。)
您可以通过运行(或您想要的值)通过 MySQL 管理连接以交互方式进行更改set global wait_timeout=60
,这将对新会话立即生效;现有会话将保留wait_timeout
启动时的值。