客戶端正在使用PHP連接到MySQL。 PHP腳本和MySQL數據庫位於2個不同的Linux服務器上。他抱怨數據庫連接正在丟失或超時,並要求我看一看。如何判斷是否有任何MySQL連接已被刪除或超時?
有沒有在MySQL的任何地方,可以讓我看看,有多少連接斷開或超時?我看着慢查詢日誌,並沒有看到任何東西。
如何診斷這種丟棄/任何建議超時數據庫連接問題?
感謝
客戶端正在使用PHP連接到MySQL。 PHP腳本和MySQL數據庫位於2個不同的Linux服務器上。他抱怨數據庫連接正在丟失或超時,並要求我看一看。如何判斷是否有任何MySQL連接已被刪除或超時?
有沒有在MySQL的任何地方,可以讓我看看,有多少連接斷開或超時?我看着慢查詢日誌,並沒有看到任何東西。
如何診斷這種丟棄/任何建議超時數據庫連接問題?
感謝
可以肯定監視
Aborted_clients
狀態變量(即,具有SHOW GLOBAL STATUS)和見連接超時。
然而,這個檢測最好的地方是在客戶端。假設你有適當的錯誤處理和日誌記錄在客戶端,你通常會看到着名的「服務器已經消失」的錯誤。
當你的應用程序是用PHP,有一個可能性,它沒有適當的錯誤處理/記錄。你應該解決這個問題。
這方面的一個常見的原因是持久連接的從Apache prefork的服務器的濫用。由於Apache prefork服務器通常在很長一段時間內不會執行任何操作,但持續連接可以在每個進程中保持打開狀態,因此連接可能最終處於空閒狀態的時間太長,從而造成「早上錯誤」。
這種情況的解決方法是簡單 - 只是關閉持久連接。幾乎在所有情況下,這都是不恰當的悲觀主義。
在問候您可以訪問http://dev.mysql.com/doc/refman/5.0/en/server-logs.html瞭解更多信息
在PHP服務器日誌:
例如:
if(mysql_ping($link))
{
//Still Connected.
}
這已被棄用。 – Ross 2013-04-16 16:57:27
用於連接2002的+1 - 連接與Aborted_clients超時 – 2012-05-19 17:57:17