Magento重新索引,无法创建表

时间:2013-02-28 13:21:46

标签: mysql 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以获取更多信息,但我们没有权利查看它。

2 个答案:

答案 0 :(得分:1)

在获得更新后,我们可以运行SHOW INNODB STATUS,我们发现我们已经有一个试图与这个新表重复的现有索引。这源于我们备份试图创建的旧版本的表。删除该表的副本使Magento能够正确地重新索引并解决了我们的问题。

答案 1 :(得分:0)

尝试记录sql命令并通过手动执行它们来调试它尝试执行的操作。在索引进程中,通常有一个清除表的命令,另一个用于重新创建表。

编辑/magentoRoot/lib/Varien/Db/Adapter/Pdo/Mysql.php并将$ _debug更改为true并记下$ _debugFile位置(应为var / debug / pdo_mysql.log)

最好在vi中编辑文件,打开浏览器重新索引JUST类别数据,将文件保存在vi:w中!然后运行索引器,然后将调试更改回false。

然后去阅读日志。这可能有所帮助。