您好,登錄后才能下訂單哦!
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
免責(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)容。