interactive_timeout = 28800
為綦江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及綦江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、綦江網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
wait_timeout = 28800
#這兩個參數(shù)默認都是28800s,即8個小時;
interactive_timeout指的是MySQL在關(guān)閉一個交互的連接之前所要等待的秒數(shù)
wait_timeout指的是mysql在關(guān)閉一個非交互的連接之前所要等待的秒數(shù)
通過mysql客戶端連接數(shù)據(jù)庫是交互式連接,通過jdbc連接數(shù)據(jù)庫是非交互式連接
(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號發(fā)生變化了,并且wait_timeout會話設(shè)置失效,恢復默認值。
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號發(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級別修改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
設(shè)置無效。
總結(jié):
1.控制連接最大空閑時長的是wait_timeout參數(shù)。
2.對于交互式連接,類似于mysql客戶端連接,wait_timeout的值繼承自服務(wù)器端全局變量interactive_timeout。
對于非交互式連接,類似于jdbc連接,wait_timeout的值繼承自服務(wù)器端全局變量wait_timeout(未演示)。
3.判斷一個連接的空閑時間,可通過show processlist輸出中Sleep狀態(tài)的時間
如:會話19為本地show processlist的id號,id18為另外一個空閑會話,可以看出這個會話已經(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)驗,把這個兩個參數(shù)的設(shè)置相同,都為5分鐘:
interactive_timeout = 300
wait_timeout = 300