2013-02-28 34 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