天天看點

tomcat連接配接mysql逾時

今天,開發一同僚反映,每天早上來以後tomcat連接配接不上mysql,需要重新開機tomcat才行,本人經驗有限,隻得先google後baidu,網上普遍認為是mysql的等待逾時連接配接所緻,其預設的時間是28800,也就是8個小時。超過這個時間後,就自動關閉該連接配接,其參數為wait_timeout,還有一個互動參數為interactive_timeout。

這裡有疑問?為什麼tomcat不重新連接配接,而是要重新開機才行呢?????

     由于是開發階段,是以連接配接絕對夠用,就把此值設大一點吧,打開my.cnf檔案,在【mysqld】标簽下設子:

    wait_timeout=1814400

參數含義:伺服器關閉非互動連接配接之前等待活動的秒數。比如sleep連接配接,就是這種狀态。是一種已經斷開的連結

    interactive_timeout=1814400

   參數含義:伺服器關閉互動式連接配接前等待活動的秒數。互動式用戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的用戶端。

參數預設值:28800秒(8小時)

     interactive_timeout指你連接配接着也會把你釋放掉,強制關閉掉連接配接着但是沒操作的連接配接。用戶端一直連接配接着,但是沒有輸入sql,可是也沒斷開的這種連結

差別就是用戶端是否還連接配接着(感謝杭州-黑影的指教)

必須重新開機mysql。也可以先用set設定及時生效,然後在配置檔案裡做設定,等下次維護重新開機再生效

這裡需要注意一下,mysql的環境變量也分全局變量和會話變量

 show variables like '%timeout%'\G 是檢視會話變量

 show global variables like '%timeout%'\G 是檢視全局變量。

重新開機,改好,待明天驗證,驗證通過,不過黑影說,隻要修改wait_timeout就Ok了