2010-03-23 138 views
1

即時通訊希望有人可以幫我快速解決我的問題。php數據庫連接錯誤

由於現場我已經構建偶爾與錯誤返回

警告:mysqli的:: mysqli的()[mysqli.mysqli]:(08004/1040):在

警告連接太多:mysqli的::查詢()[mysqli.query]:無法取得mysqli在

現在起初我認爲這是發生,頁面/腳本的開頭

$ conn = n ew mysqli($ host,$ username,$ password,$ database);

並在最後呼籲

$ conn-> close();

另外,我關閉了任何已打開的結果集。

在我今天訪問網站的時候看到我的日誌文件,看到這個錯誤,我訪問了大約12點的時間,起初頁面不會加載,然後它給了我這個錯誤。在此之前,一個人在11點30分左右,然後在10點30分左右,不是很大的交通。

我去過的主人很安靜,沒有辦法與他們取得聯繫,並且忽略任何支持郵件,我想也許現在我聽說他們不是很好,這可能是一個問題嚴重設置共享mysql服務器?

任何想法或建議將是驚人的,因爲我需要解決這個問題!

在此先感謝!

回答

4

聽起來好像MySQL服務器被太多帳戶共享,因爲這個錯誤意味着服務器的max_connections設置已被超出。這可能是有幾個其他高流量的客戶正在佔用連接(這是一個共享的MySQL服務器,我拿它?)

我很確信PHP自動關閉資源在請求(儘管總是最好明確地關閉你的連接等),所以我不認爲這是你的腳本保持連接打開。

您需要繼續保留在您的託管服務提供商處,恐怕還是考慮移動提供商。還要記錄錯誤發生的時間和時間,因爲如果他們拒絕承認有問題,您需要將其作爲證據。

您也可以引用您的提供者到本頁面:http://dev.mysql.com/doc/refman/5.1/en/too-many-connections.html

+0

感謝您的回覆......所以你不認爲它是我的錯! :) – Dori 2010-03-23 12:08:43

+0

它並未出現如此。如果您與您的提供商聯繫,請告訴他們檢查針對MySQL服務器運行「SHOW PROCESSLIST」的結果 - 它會顯示哪些連接來自哪個服務器。 – 2010-03-23 12:10:41

+0

也只是檢查你的腳本是不是創建持久連接 - 確保你的主機名不會以'p:'開頭(除非你想持續連接,但是你真的必須檢查連接是否正確關閉/處置。) – 2010-03-23 12:13:13