MySQL錯誤簡介:連接過多
當您的 Web 應用程式(網站、部落格、論壇等)訪問量很高時,意味著大量用戶訪問,這會導致伺服器資源消耗增加。如果該 Web 應用程式使用 MySQL 資料庫,且查詢數量非常多(由於網站程式設計不良或使用者量過大),MySQL 可能會顯示以下錯誤:
mysqli_connect(): (HY000/1040): Too many connections
MySQL:連接過多錯誤是什麼意思?
這意味著進入MySQL的請求太多,超過了它可以接受的數量,超過了它可以排隊或等待的數量。
怎麼解決呢?
很簡單,我們必須增加MySQL支持的請求(連接)的最大限制。
我將為您提供兩個解決此問題的方法:
1.我們編輯檔案 /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
在其中,我們將以下內容寫在[mysql]的下面:
max_connections = 500 max_user_connections = 500
這會將最大連接數從100(默認值)增加到500。
我們保存並退出,然後重新啟動MySQL服務,僅此而已。 此更改是永久性的。
2.解決此問題的另一種方法是透過更改最大限制,但使用 MySQL 查詢。
讓我們首先顯示當前限制:
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
這將向我們顯示以下內容:
+ ----------------- + ------- + | 變量名| 價值| + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
換句話說,當前限制為151個連接,好吧,通過查詢將其提高到500個:
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
準備好了!
這樣的問題是,當重新啟動服務時,此配置將丟失。
為了彌補這個細節,您可以製作一個每隔 X 時間檢查一次的 bash 腳本,甚至可以將該行添加到守護程序的啟動或重新啟動區塊中
但那我為什麼想知道第二個選項呢? ……好吧,我就是這麼說的。但一個月前,Ubuntu 伺服器忽略了方法 2,所以...在愚蠢作業系統的極端情況下,我們有第二個選項,效果同樣好