如何修復MySQL錯誤:連接過多

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,所以...在愚蠢作業系統的極端情況下,我們有第二個選項,效果同樣好 


在 Google 中將其新增為首選來源