mysql逾時機制

來源:互聯網
上載者:User

標籤:tab   ...   serve   時間   作用   目錄   one   記憶體   lld   

mysql每次建立一個socket串連(connect)時,這個socket都會佔用一定記憶體。即使你關閉(close)串連時,並不是真正的關閉,而是處於睡眠(sleep)狀態。

當你下次再進行串連時,就可以快速啟動當前處於睡眠狀態的socket。但是過多的socket會佔用大量的記憶體,為解決這個問題,mysql有個逾時機制。

你可以使用這條語句查看當前設定的逾時時間長度:

show global variables like ‘wait_timeout‘;

得到的結果如下:

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800   |
+---------------+-------+
1 row in set (0.00 sec)

預設是28800秒,也就是8小時

 

wait_timeout參數的作用:當一個閑置的串連超過8小時後,該串連就會斷開。

但是有時候需要長時間開啟mysql串連,就需要改變這個參數的值。根據機器的硬體選擇合適的參數值。

有兩種方法可以改變這個參數的值:

1.通過語句改變這個參數的值。這中方法不需要重啟mysql,但會先斷開所有當前串連,然後重新串連。

語句:set global wait_timeout = 100;執行結果:

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3
Current database: *** NONE ***

Query OK, 0 rows affected (1.13 sec)

最後一行表示已經更改成功。

註:這個方法是局部性質的。當你下次重新啟動mysql伺服器時,執行show global variables like ‘wait_timeout‘;時,仍然是修改前的值。

2.通過修改設定檔

在mysql的安裝目錄下,有個mysql.ini檔案

添加如下的設定:

[mysqlld]

wait_timeout = 100

interactive_timeout = 100

然後重啟mysql服務,更改就會生效。

註:這個參數的含義:

wait_timeout:mysql伺服器關閉非互動式串連之前等待活動的秒數

interactive_timeout:mysql伺服器關閉互動式串連之前等待活動的秒數

mysql逾時機制

聯繫我們

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