2013-02-28 44 views
0

我試圖重新建立索引類平面數據,但我總是遇到同樣的錯誤:Magento的重指數,不能創建表

There was a problem with reindexing process. Error Message: SQLSTATE[HY000]: General error: 1005 Can't create table 'xxx.catalog_category_flat_store_6' (errno: 121) 

該表不存在,有一個1和一個7.不知道這是否有所作爲?

通過phpMyAdmin手動運行查詢後,我遇到了MySQL錯誤121.我檢查了周圍,這將建議嘗試創建的外鍵的名稱已經存在。我現在在數據庫中列出了所有外鍵,而它們根本不存在。

我也嘗試在數據庫上運行SHOW ENGINE INNODB STATUS以獲取更多信息,但我們沒有權限查看該顯然。

+0

magento mysql用戶有「CREATE TABLE」權限嗎? – 2013-02-28 13:38:31

+0

是的,它的過去創建的其他人很好(如產品平板表) – BenOfTheNorth 2013-02-28 13:40:57

+0

也許這可能有所幫助:http://stackoverflow.com/questions/8070336/error-code-1005-sql-state-hy000-cant- create-table-errno-150 – 2013-02-28 13:51:05

回答

1

獲得priv的更新後,我們可以運行SHOW INNODB STATUS,我們發現我們已經有一個試圖與這個新表重複的現有索引。這源於我們備份試圖創建的表的舊版本。刪除該表的副本使Magento重新正確索引並解決了我們的問題。

0

嘗試通過手動執行它們來記錄sql命令並調試其嘗試執行的操作。在索引進程中,通常有一個清除表的命令,另一個命令重新創建它。

編輯/magentoRoot/lib/Varien/Db/Adapter/Pdo/Mysql.php和變化$ _debug爲true,並注意$ _debugFile位置(應該是無功/調試/ pdo_mysql.log)

其最在vi中編輯文件,打開一個瀏覽器來重新索引JUST類別數據,將文件保存在vi:w!然後運行索引器,然後將調試改回爲false。

然後去閱讀日誌。它可能有幫助。

+0

謝謝!它沒有顯示任何更多的錯誤信息,但它提供了查詢。我試着手動運行它,它給了我一個121的mysql錯誤 – BenOfTheNorth 2013-02-28 13:57:32