2009-06-18 88 views
1

在高流量下,我的mysql 5.0.45服務器/ Apache2/CentOS 5出現「建立mySQL數據庫連接時出錯」。我需要找到根本原因。我會非常感謝任何有關我應該採取的程序,以找到原因(內存限制,線程限制,CPU負載,慢查詢等,大型數據集,錯誤的鍵......)的信息指針,我會假設它涉及看相關的日誌文件等......調試在極端負載下建立mySQL數據庫連接時出錯

謝謝。

回答

2

該特定的錯誤消息聽起來像是由應用程序生成的,而不是由系統庫生成的。 MySQL具有報告正在發生的具體錯誤的功能,所以你最好的選擇是以某種方式利用它。例如,如果您使用的是PHP,則會有一個稱爲mysql_error()的函數返回有關遇到的最後一個錯誤(連接數過多等)的詳細信息。你會在你的連接調用附近進行一些錯誤處理,並且如果失敗,則記錄下mysql_error()結果。

您沒有提及您使用的是哪種語言,但是MySQL庫會提供相同的功能,無論您使用何種語言。我建議修改你的應用程序代碼以利用它。

+0

謝謝! 我使用PHP5和名爲ezsql的庫http://www.woyano.com/jv/ezsql我會嘗試根據您的建議輸出mysql錯誤(偶爾會發生錯誤)。是不是有一個日誌,MySQL保持這樣的錯誤? – Nir 2009-06-18 17:08:48

+0

我得到「無法創建新線程(errno 12);如果您的內存不足,可以查閱手冊以獲取可能的操作系統相關錯誤」約70%的錯誤和「無法創建UNIX套接字(12)「大約25%,偶爾」在讀取初始通信包時丟失與MySQL服務器的連接「。 它似乎不是一個內存問題,因爲'頂部'命令顯示600M免費(這類似於低流量的情況) – Nir 2009-06-18 17:57:39

1

我敢打賭,這是因爲你正在達到mysql服務器允許的最大用戶限制,但一般情況下,如果不是屏幕,但至少要打印mysql錯誤,至少要打印日誌或電子郵件。

相關問題