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