交互式操作:通俗的說,就是你在你的本機上打開mysql的客戶端,就是那個黑窗口,在黑窗口下進行各種sql操作,當然走的肯定是tcp協議。
非交互式操作:就是你在你的項目中進行程序調用。比如一邊是tomcat web服務器,一邊是數據庫服務器,兩者怎么通信?在java web里,我們通常會選擇hibernate或者是jdbc來連接。那么這時候就是非交互式操作。
在之前,我基本上不關系這兩個屬性,都是用的是mysql服務商推薦的默認值,就是8小時。
但是,從昨天開始,由于在新網租用了一個空間,而他的mysql的wait_time設置了10s,所以引出來一系列的問題,就順便來研究下。
或者這個標題可以改為“mysql的8小時自動關閉”問題,這個標題你到百度上搜搜,一搜一大堆,但是都沒有講明白,今天我就給大家來說說這兩個值。
一、概念
1)interactive_time:是指如果空余Ns(N就是這個屬性的值),那么就會自動關閉mysql的連接。關閉什么樣的mysql連接?在之前,我們在《什么是mysql的交互式操作和非交互式操作?》 這篇文章中講到,mysql是有兩種操作方式,那就有兩種連接的,一種是交互式,一種是非交互式。而這個屬性控制的是交互式。就是你打開一個mysql客 戶端黑窗口,進入操作之后,又隔了Ns你不操作了,之后你想繼續操作,對不起,mysql會在之前關閉了你的那個連接,mysql會幫你自動重新連接。
2)wait_time:是指如果空余Ns(N就是這個屬性的值),那么會自動kill掉mysql的一部分連接線程。這里的連接就是指的是非交互式連接。
總結下,就是用比較正規的術語講:
(1)interactive_timeout:
參數含義:服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。
參數默認值:28800秒(8小時)
(2)wait_timeout:
參數含義:服務器關閉非交互連接之前等待活動的秒數。
在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,取決于客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。
參數默認值:28800秒(8小時)
這里有引出了另外一個概念:mysql_real_connect(),這個好理解,就是你不管什么連接,是交互式還是非交互式,你要操作mysql之前要必須執行完畢的方法,其實你可以理解成登錄mysql,或者拿到mysql的一個連接。
二、如何查看、重新設置這兩個值

這是我修改之后的。這是查看方法。
修改這兩個值是分為兩種修改的。
新聞熱點
疑難解答