JavaWeb問題集錦: 解決Mysql資料庫訪問出現“Too many connections”問題
阿新 • • 發佈:2018-11-29
工作中程式碼中訪問資料庫連線的時候,程式碼執行中出現了"Too many connections" 的錯誤:
MySQL "Too many connections"
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
其中原因之一是因為,當程式執行過程中,當前資料連線數超過了可用連線數的時候,就會報錯"Too many connections"錯誤
解決這個錯誤:
1 首先當然是檢視程式碼,是否在獲取資料庫連線,訪問完資料庫之後沒有及時關閉資料庫連線,釋放資源。
2 檢視資料庫連線程序等待結束時間是多少?如果資料庫需要自動釋放連線的情況下,就需要修改等待結束時間,Mysq預設是28800,也就是8個小時,預設8個小時之後斷開資料庫連線,需要再次重連
檢視等待時間:
show global variables like 'wait_timeout';
修改:
set global wait_timeout=600;
3 程式碼沒有問題之後,就檢視資料庫的連線數設定,Mysql預設是100,以及增大資料庫最大連線數:
檢視:
SHOW VARIABLES LIKE '%max_con%';
修改:
SET GLOBAL max_connections = 1000;
《在Navicat for MySQL中新建Query可執行以下程式碼》
《在MySQL命令列中可執行以下程式碼》
《可在MySQL配置檔案my.ini直接找到對應的連線數max_connections和等待時間wait_timeout直接修改》