跨境电商
经验交流分享

Magento生成索引报错“Cannot initialize the indexer process”的解决办法

“Cannot initialize the indexer process”是Magento重置索引的时候最可能碰到的一个问题。在多数情况下,可能是由于Magento数据库的锁定策略导致的。可以通过在var文件中删除loaks下的文件,然后重置索引。另外一种原因则是之前一篇文章中提到的权限问题,当然该问题只存在于linux中,本地windows环境下不会有该提示。

如果说通过上述操作都无法解决问题,系统依然报错“Cannot initialize the indexer process”该怎么办呢?今天在将一个远程服务器上的Magento移植到本地开发环境时,出现了该问题,系统无法启动索引进程。使用了之前所有的方法都无效。系统日志中,记录大概如下。

SQLSTATE[HY000]: General error: 1005 Can't create table '.\database_name\catalog_category_flat_store_1' (errno: 150)

记得在之前一些Magento升级项目和数据库修复项目中曾经遇到的最多的情况便是数据库表的类型发生了变化。Magento使用事务、回滚相当频繁,绝大多数表的类型是InnoDB,而在修复项目中,最后的修复结果基本都提到了将系统中出现错误的表修改成了InnoDB表类型。

于是找到相应的数据库,发现确实里边相当多的表类型已经发生了变化,由默认安装时候的InnoDB类型变回了MyISAM。于是按照该种方式,讲牵涉到索引相关的几个核心表类型修改问MyISAM之后,果然成功修复了该问题。

ALTER TABLE catalog_category_entity ENGINE=INNODB;
ALTER TABLE core_store ENGINE=INNODB;
PS:执行上述操作之前,切记备份数据库。

MyISAM

赞(0)
未经允许不得转载:锐想 » Magento生成索引报错“Cannot initialize the indexer process”的解决办法
分享到: 更多 (0)

评论 2

评论前必须登录!

 

  1. #1

    兄弟问下,现在Magento1.7版本的数据库的表都是InnoDB类型吗?如果是MyISAM类型的表,可以直接修改成InnoDB类型吗?我们现在有个Magento的站,迁移升级后也是遇到了“产品价格”和“Tag”这两项不能执行索引!希望能收到您的解答,谢谢!

    青岛5年前 (2014-01-07)

锐想电商 - 跨境电商经验交流分享

锐想无限