MySQL數據庫提示:Communications link failure,The last packet succe
Last modified:2013-10-08 14:16:47
**********************************************
web網站使用MySQL數據庫,今天突然報以下錯誤:
Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。
原因:
Mysql服務器默認的“wait_timeout”是8小時(也就是默認的值默認是28800秒),也就是說一個connection空閒超過8個小時,Mysql將自動斷開該connection,通俗的講就是一個連接在8小時內沒有活動,就會自動斷開該連接。而連接池卻認爲該連接還是有效的(因爲並未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。
wait timeout的值可以設定,但最多隻能是2147483,不能再大了。也就是約24.85天。
修改方法:MySQL通過my.ini 在
# The TCP/IP Port the MySQL Server will listen on
port=3306下面添加
# this is myown dinifition for mysql connection timeout
wait_timeout=31536000
interactive_timeout=31536000
以上是在網上找到的解決方法,但是一般連接的有效時間不用修改,後來分析了以下問題,發現是由於數據庫連接池的一句配置引發的:
Xml代碼
<!-- 最大空閒時間,60秒內未使用則連接被丟棄。若爲0則永不丟棄。Default: 0 -->
<property name="maxIdleTime" value="0"></property>
由於mysql的連接空閒超過8個小時,所以就關閉了,但是連接池卻永不丟棄連接,認爲該連接還是有效的(因爲並未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。
解決方法將value設置爲20。
**********************************************
web網站使用MySQL數據庫,今天突然報以下錯誤:
Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。
原因:
Mysql服務器默認的“wait_timeout”是8小時(也就是默認的值默認是28800秒),也就是說一個connection空閒超過8個小時,Mysql將自動斷開該connection,通俗的講就是一個連接在8小時內沒有活動,就會自動斷開該連接。而連接池卻認爲該連接還是有效的(因爲並未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。
wait timeout的值可以設定,但最多隻能是2147483,不能再大了。也就是約24.85天。
修改方法:MySQL通過my.ini 在
# The TCP/IP Port the MySQL Server will listen on
port=3306下面添加
# this is myown dinifition for mysql connection timeout
wait_timeout=31536000
interactive_timeout=31536000
以上是在網上找到的解決方法,但是一般連接的有效時間不用修改,後來分析了以下問題,發現是由於數據庫連接池的一句配置引發的:
Xml代碼
<!-- 最大空閒時間,60秒內未使用則連接被丟棄。若爲0則永不丟棄。Default: 0 -->
<property name="maxIdleTime" value="0"></property>
由於mysql的連接空閒超過8個小時,所以就關閉了,但是連接池卻永不丟棄連接,認爲該連接還是有效的(因爲並未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。
解決方法將value設置爲20。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.