我在Ubuntu Linux上運行的C++程序中遇到MySQL「連接太多」錯誤。MYSQL太多的連接錯誤不會消失
這是獲得誤差(它是返回MySQL錯誤的方法中,如果有的話)的代碼:「太多的連接」
MYSQL connect;
mysql_init(&connect);
if (!mysql_real_connect(&connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0))
{
return mysql_error(&connect);
}
此代碼保持返回字符串
我想知道這是否是其他一些錯誤。這個程序在我發生這個錯誤之前已經工作了好幾個月。當錯誤第一次出現時,這是因爲我已經針對數千次更新/讀取運行了該程序,所以是的,很有可能我用完了可用的連接。問題是,我無法找到釋放它們的方法,如果這就是它的原因。
這是我曾嘗試:
- FLUSH HOSTS;
- FLUSH TABLES;
- 重啓MYSQL
- 重新啓動機器完全
它已經超過12小時,因爲這個錯誤第一次出現,所以如果它是連接則什麼都沒有復位/釋放。我原以爲重新啓動機器就會發布一些東西。
只是一個快速評論重啓MySQL。這個問題不是要求如何編寫C++代碼。我當然會關閉連接並釋放指針。我的問題是關於如何讓MYSQL重置自身。此程序將不再運行,因爲MYSQL中存在某種內部狀態,即使在閒置超過12小時並重新啓動計算機後,它仍會認爲連接太多。 – Darren
請參閱我的答案的編輯版本。 – Bitmap
感謝位圖,我會嘗試增加max_connections設置。唯一的問題是,這並不能回答我如何重置連接的問題。當然,必須有一些方法來重置MySQL中的連接。即使在重新啓動之後,它是否真的永遠掛在所有連接上?那不就是說我永遠無法擺脫我的關係嗎?這部分對我來說沒有意義 – Darren