2015-02-07 63 views
1

我使用WordPress與MySQL。我的網站最近崩潰了(由於數據庫內存不足)MySQL表只在修復後崩潰

一旦網站啓動,它似乎很好,但只是以防萬一我在數據庫上運行「修復」(從phpmyadmin)。之後,它崩潰了我的「wp_posts」表。我再次從舊版本恢復數據庫 - 表看起來很好。再次,我跑了「修理」和同一張桌子墜毀。

我在VPS服務器上。所以我沒有root訪問權限,但我可以讓網絡管理員檢查事情。

任何想法可能會導致這/如何解決它?

謝謝。

回答

1

這是一個MySQL服務器配置問題。我有同樣的問題。在我的情況下,這是由於一個名爲myisam_sort_buffer_size的MySQL系統變量被設置爲一個荒謬的小值(4096)。這干擾了repair table操作。就我而言,wp_posts文件和其他文件使用了MyISAM訪問方法。如果你使用InnoDB,你會想看看控制訪問方法的變量而不是MyISAM。

發出此命令你的MySQL服務器:

show variables like '%buffer_size' 

然後尋找這似乎低變量。

您可能還想看看MySQL服務器錯誤日誌文件。

如果您自己運行服務器,請注意配置更改:首先閱讀文檔頁面。 http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html

如果您的託管服務提供商運行服務器,請輸入請求票據,請求升級到知道MySQL的支持人員,並具體說明發生了什麼問題。

+0

嗨Ollie,謝謝你的回答。我的數據庫(和表)使用MyISAM。這位支持者最終跑完了:「myisamchk」似乎並沒有破壞桌子,之後正常修復似乎已經奏效。這對你有意義嗎? (根據你的回覆) – 2015-02-07 14:40:16

+1

是的,它的確如此。這聽起來像你的表是腐敗的,它不是(在你的情況下)一個服務器錯誤配置。有備份很好,呃? – 2015-02-07 14:44:11

+0

WP-dbmanager是我心目中的英雄在這種情況下:) – 2015-02-07 14:47:39