閱讀713 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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了

最後更新:2017-11-07 08:33:44

  上一篇:go  mysql 執行狀態分析 show processlist
  下一篇:go  Error 1115 Unknow character set ‘gbk’