SHOW VARIABLES LIKE '%timeout%';
使用如上命令可以查詢MySQL的超時參數配置,可以看到超時參數還是較多的,下面解釋一下主要參數的作用。
1. connect_time
connect_timeout指的是連接過程中握手的超時時間,即MySQL客戶端在嘗試與MySQL服務器建立連接時,MySQL服務器返回錯誤握手協議前等待客戶端數據包的最大時限。默認10秒。
2. interactive_timeout / wait_timeout
MySQL關閉交互/非交互連接前等待的最大時限。默認28800秒。
3.lock_wait_timeout
sql語句請求元數據鎖的最長等待時間,默認為一年。此鎖超時對於隱式訪問Mysql庫中系統表的sql語句無效,但是對於使用select,update語句直接訪問MySQL庫中標的sql語句有效。
4.net_read_timeout / net_write_timeout
mysql服務器端等待從客戶端讀取數據 / 向客戶端寫入數據的最大時限,默認30秒。
5.slave_net_timeout
mysql從復制連結等待讀取數據的最大時限,默認3600秒。
以上可以看出,connect_timeout在握手認證階段(authenticate)起作用,interactive_timeout 和wait_timeout在連接空閑階段(sleep)起作用,而net_read_timeout和net_write_timeout則是在連接繁忙階段(query)或者網絡出現問題時起作用