MYSQL連線逾時問題解決辦法

來源:互聯網
上載者:User

 程式後台報這個錯誤 at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2332) ,** END NESTED EXCEPTION ** Last packet sent to the server was 34 ms ago.

這個問題主要原因是應用伺服器很長時間沒有串連mysql,超過了mysql設定的最大逾時時間,再串連mysql就會出現這個問題。

mysql預設設定是8小時,一般網站白天都有人訪問,從夜裡到早上一般都會超過8小時,所以再來訪問就會這個問題。

簡單的解決辦法就是修改最大逾時時間,比如改為12小時或10小時,這樣恰好避免了無人訪問的時段,這裡修改為10小時,方法如下:

看來下 wait_timeout 才15真不是一般的短,系統預設安裝的就是麻煩.


開啟MySQL的控制台,運行:show variables like ‘%timeout%’,查看和連線時間有關的MySQL系統變數

設定下即可

 代碼如下 複製代碼

mysql> show variables like ‘%timeout’;

+—————————-+——-+
| Variable_name | Value |
+—————————-+——-+
| connect_timeout | 15 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 15 |
+—————————-+——-+
10 rows in set (0.00 sec)

直接設定wait_timeout 時間長度

 代碼如下 複製代碼

mysql> set wait_timeout = 36000;
Query OK, 0 rows affected (0.00 sec)

mysql> set interactive_timeout = 36000;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%timeout’;


+—————————-+——-+
| Variable_name | Value |
+—————————-+——-+
| connect_timeout | 15 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 36000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 36000 |
+—————————-+——-+
10 rows in set (0.00 sec)


本人覺得最簡單的辦法,就是對症下藥:既然問題是由mysql5的全域變數wait_timeout的預設值太小引起的,我們將其改大就好了。

查看mysql5的手冊,發現對wait_timeout的最大值分別是24天/365天(windows/linux)。以windows為 例,假設我們要將其設為21天,我們只要修改mysql5的設定檔“my.ini”(mysql5 installation dir),增加一行:

[mysqld]

 代碼如下 複製代碼

wait_timeout=31536000
interactive_timeout=31536000

 

 

需要重新啟動mysql5。

linux系統設定檔:/etc/my.cnf

測試顯示問題解決了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.