我最近將我的 PHP 應用程序遷移到了使用 PHP 7.3 和 MariaDB 的新服務器(之前是 PHP 5.5 和 MySQL 5.5)。我遇到一些“連接過多”錯誤的問題。我想我的應用程序必須改進才能糾正這個問題。為此,我使用以下值更改了 mariaDB 服務器配置:max_connections = 600connect_timeout = 5wait_timeout = 60interactive_timeout = 60盡管有這些增強功能,我仍然遇到同樣的問題,一些休眠進程仍然存在,時間超過 60 秒...并且線程數正在增加...直到 max_coonections 值。當然,我已經重新啟動了服務器。我的 PHP 應用程序使用 Mysqli 和持久連接。
3 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
最后我發現問題出在服務器的安裝上。我曾經像往常一樣更改 my.cnf,并且有些變量在每次重新啟動時都會更改,而其他變量則不會更改。
我意識到還有另一個conf文件,并且該文件或verwrite了我在my.cnf文件中對某些變量所做的更改...現在我更改了好的文件,并且服務器正在正常工作。
因此,如果 mariaDB 忽略您在 conf 文件中的更改,請檢查是否還有其他文件。

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
雖然增加可能會帶來好處max_connections
,但只會讓事情變得更糟。聽起來你們之間有很多聯系,互相絆倒——沒有一個能完成。
看看SHOW PROCESSLIST
。具有最大“時間”(“系統”進程除外)的非睡眠進程之一可能是主要的罪犯。
如果進程列表顯示超過 30 個非“睡眠”連接,則降低max_connections
超時時間。這些將有助于疏通系統,但無法解決問題的根源。
“原因”通常是一個或幾個長時間運行的查詢阻塞了其他連接。
- 3 回答
- 0 關注
- 198 瀏覽
添加回答
舉報
0/150
提交
取消