MySql 限制連線程式數

思維之上發表於2017-06-27

mysql 伺服器對於連線的每個程式,如果客戶端沒有主動關閉該程式,那麼伺服器在殺死該程式前預設等待的時間是8小時,對於訪問較為頻繁的資料庫,很有可能在短時間內由於訪問量過大,同時閒置程式(sleep狀態)又沒有被及時清除,造成程式堵塞,也就是大家經常碰見的“too many connections”錯誤

對此問題,我們可以重新設定伺服器等待的時間,將其減小,這需要修改my.cnf檔案。預設在/etc/mysql資料夾下。配置檔案中內容如下:

[mysqld]

wait_timeout=100
interactive_timeout=100

修改好配置檔案後,重啟mysql伺服器即可,之後伺服器會把每一個閒置時間超過100秒的程式殺死,從而保證資料庫連線的永續性和有效性。

值得注意的是:wait_timeout與interactive_timeout缺一不可,設定完成後,可以進入mysql shell改資料庫伺服器中,輸入 show variables like “%timeout%” 觀察timeout設定是否成功。

相關文章