這一個是殺了我。我們在MySQL數據庫上有一個ASP.NET/Mono應用程序。幾個月來,我們一直困擾着一個完全隨機但一致的「無法連接到任何指定的MySQL主機」。我絕不是MySQL專家,我希望這是一件愚蠢的事情。MySql *完全隨機*無法連接到任何指定的MySQL主機
具體細節:
的MySQL 5.5.17
MySQL連接/淨6.4.4
單聲道2.10.8
MonoDevelop的2.8.6.5
連接字符串:SERVER =本地主機,3306; DATABASE = XXX ; UID = xxx; PWD = xxx; CONNECTION TIMEOUT = 90; Encrypt = false;
Max_connections設置爲150.從未有超過5個連接,並且它們都是活動的(可能是由於池)。
該應用程序是C#ASP.NET 3.5。在Windows/IIS上運行多年,堅如磐石。九個月前,我們的市場導致我們脫離Windows,所以我們(很容易就可以添加)將整個事情轉移到Mono/Apache。
這個問題只發生在單聲道方面,但這是至關重要的,因爲我們已經退休了我們的Windows支持。
平均每小時發生10次左右,但間距變化很大。
問題已目睹了以下配置:
Ubuntu的11/Apache2的/是mod_mono
OSX獅子/ Apacke2 /是mod_mono
Ubuntu的11/xsp2/MonoDevelop的調試服務器
OSX獅子/ xsp2/MonoDevelop的調試服務器
搞砸與keepaliv e,wait_timeout,connectionreset等無濟於事。時間似乎沒有影響。 conn.open上的錯誤是即時的 - 不是在任何連接超時之後。
這是一個線索 - 應用程序絕對不會運行Pooling = false。幾乎每個連接嘗試失敗。當然,我想集中,但我不知道爲什麼它不工作。
該應用程序內置有「心跳」(數據庫中的用戶會話) - 每2分鐘一次。
最令人發狂的是?它絕對不能在運行環境中按需複製 - 它是隨機的。我已經檢查過查詢大小,執行時間等。
在一種情況下,我可以做到這一點:在首次啓動Ubuntu服務器或OSX時,Mono第一次使它成爲第一次連接到MySQL - 它那麼會發生。之後,這是任何人的猜測。
max_connections限制如何?你可能會在不同時間達到最大允許值。 – 2012-02-20 23:29:42
似乎不太可能,因爲它發生在第一次連接 – DNA 2012-02-20 23:35:16
對於一個好問的問題+1,但我認爲它會在serverfault.com上更好 – 2012-02-20 23:43:31