2010-08-27 56 views
1

我正在使用PHP腳本,它意味着長時間連續執行(一次性映射腳本)並將數據插入MySQL數據庫。該腳本能正常工作,但最終(一兩分鐘後),它會得到一個錯誤:執行創建「MySQL服務器已經消失」錯誤

MySQL server has gone away 

我已經改變了INI設置兩個MySQL連接超時,併爲PHP腳本執行超時,但也發生了變化結果。

我已經制作了一個非常類似的腳本,它在相同的服務器上運行了很長時間,卻沒有遇到這個錯誤。

我感謝你的時間,希望你的幫助可以讓我解決這個問題,以及將來遇到這個職位的任何其他沮喪的scripter。

+0

執行的查詢是什麼? – 2010-08-27 07:25:41

回答

1

有很多原因要做到這一點:超時,大數據包大小等

請檢查this

0

檢查mysql服務器設置上的max_allowed_pa​​cket。客戶端不能發送大於此值的數據包,否則mysql服務器將關閉連接。

這隻與查詢字符串變得很長時的數據插入有關。這不會影響SELECT,因爲服務器會自動放大發送數據包。

好的大小將是您的數據的大小乘以2。由於在發送數據之前經常會轉義數據,並且在SQL QUERY中添加了頁眉和可能的頁腳,因此需要進行乘法運算。

max_allowed_pa​​cket的用法是控制服務器內存使用情況並限制DoS攻擊。