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果然很好找,问题得到了阶段性的处理。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM