溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

interactive_timeout和wait_timeout的關系

發布時間:2020-08-11 09:39:33 來源:網絡 閱讀:857 作者:Darren_Chen 欄目:MySQL數據庫

interactive_timeout = 28800

wait_timeout = 28800

#這兩個參數默認都是28800s,即8個小時;

interactive_timeout指的是mysql在關閉一個交互的連接之前所要等待的秒數

wait_timeout指的是mysql在關閉一個非交互的連接之前所要等待的秒數

通過mysql客戶端連接數據庫是交互式連接,通過jdbc連接數據庫是非交互式連接


(1)session級別修改interactive_timeout=10,wait_timeout默認不變。

mysql>set session interactive_timeout=10;

mysql>show variables like '%timeout%';

| interactive_timeout         | 10       |

| wait_timeout                | 28800

等10s后,此會話連接沒有斷開。


(2)session級別修改wait_timeout =10,interactive_timeout默認不變。

mysql>set session wait_timeout=10;

mysql>show variables like '%timeout%';

| interactive_timeout         | 28800        |

| wait_timeout                | 10

等10s后,此會話斷開,隨便輸入一條命令報錯,然后重新連接,但是此時連接id號發生變化了,并且wait_timeout會話設置失效,恢復默認值。

mysql>show processlist;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    5

Current database: *** NONE ***


(3)global級別修改interactive_timeout=10,wait_timeout默認不變。

mysql>set global interactive_timeout=10;

mysql>quit

[root@Darren1 ~]# mysql -uroot -p147258

mysql>show variables like '%timeout%';

| interactive_timeout         | 10        |

| wait_timeout                | 10

等10s后,此會話斷開,隨便輸入一條命令報錯,然后重新連接,但是此時連接id號發生變化了,

mysql>show processlist;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    9

Current database: *** NONE ***


(4)global級別修改wait_timeout=10,interactive_timeout 默認不變。

mysql>set wait_timeout=10;

mysql>quit

[root@Darren1 ~]# mysql -uroot -p147258

mysql>show variables like '%timeout%';

| interactive_timeout         | 28800       |

| wait_timeout                | 28800

設置無效。



總結:

1.控制連接最大空閑時長的是wait_timeout參數。


2.對于交互式連接,類似于mysql客戶端連接,wait_timeout的值繼承自服務器端全局變量interactive_timeout。  

 對于非交互式連接,類似于jdbc連接,wait_timeout的值繼承自服務器端全局變量wait_timeout(未演示)。


3.判斷一個連接的空閑時間,可通過show processlist輸出中Sleep狀態的時間

如:會話19為本地show processlist的id號,id18為另外一個空閑會話,可以看出這個會話已經空閑了61s

mysql>show processlist;

+----+------+-----------+------+---------+------+----------+------------------+

| Id | User | Host      | db   | Command | Time | State    | Info             |

+----+------+-----------+------+---------+------+----------+------------------+

| 18 | root | localhost | NULL | Sleep   |   61 |          | NULL             |

| 19 | root | localhost | NULL | Query   |    0 | starting | show processlist |

+----+------+-----------+------+---------+------+----------+------------------+


4.根據生產庫經驗,把這個兩個參數的設置相同,都為5分鐘:

interactive_timeout = 300

wait_timeout = 300


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女