MySQL的Connection自動斷開問題

2022-02-11 19:17:47 字數 680 閱讀 7701

mysql預設配置下,會自動斷開那些idle超過8小時的connection,如果應用程式保持這個連線,8個小時 (wait_timeout=28800秒)後,用jdbc,再次訪問資料庫,會有異常丟擲,據說用autoreconnect=true可以避免這個問 題,不管你信不信,反正我信了,而且好多年前,我就這麼做的。

直到最近,在乙個鮮有人訪問的應用中發現,問題依舊,8小時候後的第一次訪問,總是失敗,重新整理一下頁面,就正常了。google了一下,才知道mysql不推薦使用autoreconnect=true來解決此問題,如下:

[12 aug 2004 18:46] mark matthews

解決也很簡單,記錄最近一次的connection訪問時間,如果超過了8小時,就重新建立這個連線,經驗證是可行的。另外也可以在建立connection的同時,建立乙個執行緒定時的去執行乙個select 1語句,前面的方法比較簡單。

這裡要指出的是,用connection的isvalid()方法去檢測connection是否有效是不行的,程式會死在那裡(未調查原因),試 圖用isclosed()去判斷connection是否斷開也是行不通的,因為只有明確的呼叫了connection的close()方法後,你才能用 isclosed()去判斷,也就是說connection在idle超過8小時候後,這個時候你如果去列印它的isclosed()的值,它還是顯示 false,但實際上卻不能使用。

關於設定http響應頭connection的作用

有的 會在伺服器執行一段時間後down掉,有很多原因可能造成這種現象 比如tomcat堆和非堆記憶體設定不足,程式沒能釋放記憶體空間造成記憶體 溢位,或者某些程序一直執行沒能釋放,造成cup資源大量消耗。但除了程式本身的原因,還有可能是客服端訪問造成 當然這個客戶端也包含如蜘蛛軟體等搜尋引擎 如果伺...

mysql的恢復 MYSQL的恢復

恢復就簡單多了!只要執行該備份檔案就行了,該備份檔案是sql哦!恢復完全備份mysql uroot p backup.sql 就這麼簡單!恢復增量備份mysqlbinlog mysql bin.000002 mysql u root p 注意此次恢復過程亦會寫入日誌檔案,如果資料量很大,建議先關閉日...

mysql的查詢日誌 mysql

這篇文章總結了mysql中查詢日誌的知識點。mysql中,日誌可以按照功能分為如下幾類。錯誤日誌 查詢日誌 慢查詢日誌 二進位制日誌 中繼日誌 innodb儲存引擎級別的事務日誌 查詢日誌 查詢日誌在mysql中被稱之為general log 通用日誌 不要被 查詢日誌 的名字誤導,錯誤的以為查詢日...