MySql 提示连接超时,连接池的连接数量超过了Max Pool Size参数的限制

问题描述:

MySql.Data.MySqlClient.MySqlException (0x80004005): error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
在 MySql.Data.MySqlClient.MySqlPool.GetConnection()
在 MySql.Data.MySqlClient.MySqlConnection.Open()
在 _Default.Button1_Click(Object sender, EventArgs e)

处理过程:

部署在云服务器上的程序出现这个问题后,网上查查让修改mysql的最大连接数量,首先是查到当前MySql最大的连接数量还是默认的,然后在my.ini中改成了1000个,重启后生效了,重启IIS后好了。

--下面是mysql查看当前允许最大连接数的语句

 

 

 然后过了一段时间又不行了,然后找程序里的BUG,看看哪里没有关闭数据库连接,结果没找到,重启了IIS后又好了一段时间(后来发现实际就是程序的原因)。

--下面是mysql查询当前数据库连接情况的语句,可以看出连接数远远少于1000

然后过了一段时间又不行了,发现出问题的时候其他数据库访问还是正常的,然后就搜了一下怎么看mysql的所有连接信息,主要是看每个数据库的连接数量。

 

 

 然后就发现问题了,有些连接的时间特别长[TIME 字段],我开始找什么情况下会多一条不关闭的连接,这样找BUG果然很好找,问题得到了阶段性的处理。

 

posted @ 2022-02-21 11:56  杨松岩  阅读(2376)  评论(1编辑  收藏  举报