0

我正在尝试重新索引类别平面数据,但我总是遇到同样的错误:

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 以获取更多信息,但我们显然无权查看。

4

2 回答 2

1

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

于 2013-03-14T16:20:58.470 回答
0

尝试记录 sql 命令并通过手动执行它们来调试它试图做什么。在索引过程中,通常有一个命令清除表,另一个命令重新创建它。

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

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

然后去读日志。它可能会有所帮助。

于 2013-02-28T13:50:49.367 回答