其中wait_timeout就是負責超時控制的變數,其時間為長度為28800s,就是8個小時,那麼就是說mysql的服務會在操作間隔8小時後斷開,需要再次重連。也有使用者在url中使用jdbc.url=jdbc:mysql://localhost:3306/nd?autoreconnect=true來使得連線自動恢復,當然了,這是可以的,不過是mysql4及其以下版本適用。mysql5中已經無效了,必須調整系統變數來控制了。mysql5手冊中對兩個變數有如下的說明:
interactive_timeout:伺服器關閉互動式連線前等待活動的秒數。互動式客戶端定義為在mysql_real_connect()中使用client_interactive選項的客戶端。又見wait_timeout
如此看來,兩個變數是共同控制的,那麼都必須對他們進行修改了。繼續深入這兩個變數wait_timeout的取值範圍是1-2147483(windows),1-31536000(linux),interactive_time取值隨wait_timeout變動,它們的預設值都是28800。
mysql的系統變數由配置檔案控制,當配置檔案中不配置時,系統使用預設值,這個28800就是預設值。要修改就只能在配置檔案裡修改。windows下在%mysql home%/bin下有mysql.ini配置檔案,開啟後在如下位置新增兩個變數,賦值。(這裡修改為388000)
儲存退出,重啟mysql服務,一定是重啟系統服務。便可看到修改結果:
linux系統下的配置檔案為/etc/my.cnf。需要多說一點的是:windows下的配置檔案具體是哪個需要從windows系統服務中找到mysql,開啟屬性,看「可執行檔案路徑」裡面的引數值,因為它可能是my.cnf而不是my.ini,這是由於安裝時的設定,我們可能會忽略它。
至此,修改完成,那麼連線超時的問題從資料庫上就解決了。當然在程式設計時也可以使用連線池設定超時時間,配置相對簡單。但修改資料庫更為本質一些。
個人見解。希望對使用者有用。
MYSQL 連線超時問題
前不久維護了乙個 專案,專案的後台設計是 管理者進入 後台連線,第一步就是建立資料庫,只需按照提示輸入 ip 位址 即在那個ip 位址的主機上建立資料庫 使用者名稱 密碼 埠號 即所在ip 位址的主機上安裝的mysql 的使用者名稱 密碼和埠號 資料庫的名字這5項內容,然後就開始自動建立資料庫,建立...
如何解決MySQL連線超時關閉
最近做 有乙個站要用到web網頁採集器功能,當乙個php指令碼在請求url的時候,可能這個被請求的網頁非常慢慢,超過了mysql的 wait timeout時間,然後當網頁內容被抓回來後,準備插入到mysql的時候,發現mysql的連線超時關閉了,於是就出現了 mysql server has go...
MySQL連線超時
1.無論是my.ini還是my.cnf,在 mysqld 下面有兩個配置項 wait timeout 28800 interactive timeout 28800 預設值都是28800秒.乙個連線,預設持續時間是wait timemout,如果連線中mysql real connect引數採用了c...