2012-07-12 42 views
0

我正面臨着一個非常奇怪的問題。Mysql最大用戶連接錯誤

我試圖與用戶連接到我的MySQL 5.5的實例,但它一直在說,我認爲用戶已經突破了MAX_USER_CONNECTIONS

ERROR 1226 (42000): User 'xpto' has exceeded the 'max_user_connections' resource (current value: 100) 

但是,

show processlist 

不顯示該用戶使用的任何連接。我很確定用戶根本沒有使用任何連接。 如果我增加當前值爲110例如我可以連接。然後,如果我降低我無法連接。

編輯:全球連接使用率爲500,只有少數(10/20)正在使用。

任何線索?

+1

連接max_user_connections的值和值是什麼? – 2012-07-12 18:25:58

+0

全局最大連接數爲500,對於該用戶爲100.連接被拒絕來自mysql cli客戶端和來自perl腳本,這是唯一讓該用戶連接數據庫的腳本。我也殺死了perl腳本的每個實例。 – balsagoth 2012-07-12 19:01:51

回答

1

服務器已經有太多打開的連接了。一個MySQL服務器只能處理特定數量的開放連接,然後拒絕再允許,並且這個限制在服務器的所有用戶中共享。它通常設置得相當高,儘管通過建立大量連接,人們很容易有效地對MySQL服務器執行DoS操作。

如果您收到錯誤消息(代碼1226),表示整個MySQL服務器的連接插槽已用完 - 這是DoS方案。

  1. 數據庫必須有一個用戶「A」使用您已配置你的WordPress博客。
  2. 現在的問題是,用戶「A」已經超過maximum_questions資源(當前值:40)
  3. 通過您的域名控制面板在數據庫中創建一個新的用戶「B」和更新相同的用戶名,你wp-config.php文件 wordpress安裝目錄。
  4. 現在你在幾分鐘內解決了問題。它不會打擾您的wordpress或phpbb中的數據庫或帖子。

neuronring blog

+0

不,如我所說用戶沒有任何連接,如果我運行processlist。 – balsagoth 2012-07-12 17:53:21

0

複製你在MySQL 5,並且已經設置了用戶的MAX_USER_CONNECTIONS,且用戶最近斷開?

從MySQL docs

對於MAX_USER_CONNECTIONS極限,如果 帳戶目前打開的連接的最大數量允許 到它可以發生的邊緣的情況下:a斷開緊接着一個連接可以導致在 錯誤(ER_TOO_MANY_USER_CONNECTIONS或ER_USER_LIMIT_REACHED),如果 服務器在連接 發生時尚未完全處理斷開連接。當服務器完成斷開連接處理時,將再次允許另一個 連接。

+0

我認爲情況並非如此。我沒有通過mysql報告的用戶連接,並且我無法在一天中與該用戶進行連接。根我可以。我認爲重啓應該可以解決問題,但我需要了解未來要防止的問題。 – balsagoth 2012-07-12 21:20:27