mysql重連,串連丟失問題:The last packet sent successfully to the server was……

來源:互聯網
上載者:User

標籤:

1.log錯誤記錄檔:

-org.hibernate.exception.JDBCConnectionException: The last packet successfully received from the server was 51,999,860 milliseconds ago. The last packet sent successfully to the server was 51,999,860 milliseconds ago. is longer than the server configured value of ‘wait_timeout‘. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true‘ to avoid this problem.

其中錯誤還會提示你修改wait_timeout或是使用Connector/J的autoReconnect屬性避免該錯誤。

後來查了一些資料,才發現遇到這個問題的人還真不少,大部分都是使用串連池方式時才會出現這個問題,短串連應該很難出現這個問題。

2.這個問題的原因:

MySQL伺服器預設的“wait_timeout”是28800秒即8小時,

意味著如果一個串連的空閑時間超過8個小時,MySQL將自動斷開該串連,

而串連池卻認為該串連還是有效(因為並未校正串連的有效性),當應用申請使用該串連時,就會導致上面的報錯。

3.解決辦法:

a.按照錯誤的提示,可以在JDBC URL中使用autoReconnect屬性,下面是我的配置

<property name="connection.url">
jdbc:mysql://localhost:3306/anxincar?autoReconnect=true
</property> 

其中紅色部分為新添加的屬性設定
不過網上有另一種說法,有人測試該設定只對mysql4之前的版本有效,具體是否屬實還有待考證。

b.我查看了下我們伺服器上安裝的是mysql5.0,為了確保串連不再丟失而出現此類問題,同時修改MySQL的參數,wait_timeout最大為31536000即1年,在my.ini中加入:

[mysqld]
wait_timeout=31536000
interactive_timeout=31536000

紅色部分為新添加的參數設定

最後:重啟mysql服務,重啟tomcat,讓設定檔生效。

 

 

mysql重連,串連丟失問題:The last packet sent successfully to the server was……

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.