溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

interactive_timeout和wait_timeout的關(guān)系

發(fā)布時(shí)間:2020-08-11 09:39:33 來源:網(wǎng)絡(luò) 閱讀:811 作者:Darren_Chen 欄目:MySQL數(shù)據(jù)庫

interactive_timeout = 28800

wait_timeout = 28800

#這兩個(gè)參數(shù)默認(rèn)都是28800s,即8個(gè)小時(shí);

interactive_timeout指的是mysql在關(guān)閉一個(gè)交互的連接之前所要等待的秒數(shù)

wait_timeout指的是mysql在關(guān)閉一個(gè)非交互的連接之前所要等待的秒數(shù)

通過mysql客戶端連接數(shù)據(jù)庫是交互式連接,通過jdbc連接數(shù)據(jù)庫是非交互式連接


(1)session級(jí)別修改interactive_timeout=10,wait_timeout默認(rèn)不變。

mysql>set session interactive_timeout=10;

mysql>show variables like '%timeout%';

| interactive_timeout         | 10       |

| wait_timeout                | 28800

等10s后,此會(huì)話連接沒有斷開。


(2)session級(jí)別修改wait_timeout =10,interactive_timeout默認(rèn)不變。

mysql>set session wait_timeout=10;

mysql>show variables like '%timeout%';

| interactive_timeout         | 28800        |

| wait_timeout                | 10

等10s后,此會(huì)話斷開,隨便輸入一條命令報(bào)錯(cuò),然后重新連接,但是此時(shí)連接id號(hào)發(fā)生變化了,并且wait_timeout會(huì)話設(shè)置失效,恢復(fù)默認(rèn)值。

mysql>show processlist;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    5

Current database: *** NONE ***


(3)global級(jí)別修改interactive_timeout=10,wait_timeout默認(rèn)不變。

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后,此會(huì)話斷開,隨便輸入一條命令報(bào)錯(cuò),然后重新連接,但是此時(shí)連接id號(hào)發(fā)生變化了,

mysql>show processlist;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    9

Current database: *** NONE ***


(4)global級(jí)別修改wait_timeout=10,interactive_timeout 默認(rèn)不變。

mysql>set wait_timeout=10;

mysql>quit

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

mysql>show variables like '%timeout%';

| interactive_timeout         | 28800       |

| wait_timeout                | 28800

設(shè)置無效。



總結(jié):

1.控制連接最大空閑時(shí)長(zhǎng)的是wait_timeout參數(shù)。


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

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


3.判斷一個(gè)連接的空閑時(shí)間,可通過show processlist輸出中Sleep狀態(tài)的時(shí)間

如:會(huì)話19為本地show processlist的id號(hào),id18為另外一個(gè)空閑會(huì)話,可以看出這個(gè)會(huì)話已經(jīng)空閑了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.根據(jù)生產(chǎn)庫經(jīng)驗(yàn),把這個(gè)兩個(gè)參數(shù)的設(shè)置相同,都為5分鐘:

interactive_timeout = 300

wait_timeout = 300


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI