1. 程式人生 > >JavaWeb問題集錦: 解決Mysql資料庫訪問出現“Too many connections”問題

JavaWeb問題集錦: 解決Mysql資料庫訪問出現“Too many connections”問題

工作中程式碼中訪問資料庫連線的時候,程式碼執行中出現了"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直接修改》