2010-12-15 41 views
3

我試圖用一個查詢插入數據50,000行,因此服務器正在遠離。我試圖改變max_allowed_pa​​cket,但它沒有改變。任何建議。mysql server has gone away

在此先感謝

+0

你是什麼意思,它會消失?喜歡凍結? – Igor 2010-12-15 21:32:33

+2

哇,服務器消失了嗎?你的意思是你的服務器機架上有一個孔,電線垂下來了?這是第一:) – Marplesoft 2010-12-15 21:36:33

+0

請確保您符合此處列出的所有可能的原因: [爲什麼mysql消失](http://dev.mysql.com/doc/refman/5.0/en/gone-away.html) – ajreal 2010-12-15 21:37:55

回答

1

你檢查mysqls的WAIT_TIMEOUT時間?另外,你用什麼來導入記錄(一個腳本,一個sql編輯器,命令行)? Php的例子使用它自己的connect_timeout在php.ini中設置,這會導致你看到的錯誤。

+0

我想用sql編輯器運行腳本。我沒有檢查超時。請告訴我如何設置超時時間; – Novice 2010-12-15 21:34:29

+0

什麼是編輯器?他們中的許多人都有自己的超時設置。 – 2010-12-15 21:40:01

+0

Sql Manager 2010 for MySql – Novice 2010-12-15 21:44:28

1

它可能要花很長時間才能構建服務器由於空閒超時而斷開連接的查詢,或者需要很長時間才能傳輸它認爲存在錯誤的信息。最好的方法可能是將您的插入分爲25-100個記錄組。

+0

啊。這將花費很多時間。因爲我總共有1000,000個記錄被分割爲50,000 – Novice 2010-12-15 21:37:31

+0

使用perl或php腳本加載數據時,使用25-100條記錄的插入比嘗試一次爲我加載所有記錄要快。 YMMV,你有自己的基準嗎 – 2010-12-15 21:49:03

1

There尋找wait_timeout和一些mysql_ping和一些更多的建議。

1

我在my.ini中設置了max_allowed_pa​​cket = 64,並重新啓動了服務器。現在它工作正常。感謝所有人的幫助。