Magento 无法初始化索引器进程

Magento 无法初始化索引器进程,magento,indexing,magento-1.7,Magento,Indexing,Magento 1.7,很抱歉问题重复,但我找不到问题的答案,因此我再次发布。 我试图通过管理员重新索引magento 1.7.0.2。由于服务器是共享服务器,我无法通过shell脚本运行索引器;虽然我试着通过cron运行它,但它也不起作用。 运行indexer进程后,我在exception.log文件中记录了以下错误: 2013-07-14T17:03:55+00:00 DEBUG (7): Exception message: Cannot create table without columns comments

很抱歉问题重复,但我找不到问题的答案,因此我再次发布。 我试图通过管理员重新索引magento 1.7.0.2。由于服务器是共享服务器,我无法通过shell脚本运行索引器;虽然我试着通过cron运行它,但它也不起作用。 运行indexer进程后,我在exception.log文件中记录了以下错误:

2013-07-14T17:03:55+00:00 DEBUG (7): Exception message: Cannot create table without columns comments
Trace:0/home/username/public_html/demo/app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php604:Varien_Db_Adapter_Pdo_Mysql->createTableObjectVarien_Db_Ddl_Table

#1 /home/username/public_html/demo/app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php(1418): Mage_Catalog_Model_Resource_Category_Flat->_createTable('4')
#2 /home/username/public_html/demo/app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php(1431): Mage_Catalog_Model_Resource_Category_Flat->_createTables()
#3 /home/username/public_html/demo/app/code/core/Mage/Catalog/Model/Category/Indexer/Flat.php(246): Mage_Catalog_Model_Resource_Category_Flat->reindexAll()
#4 /home/username/public_html/demo/app/code/core/Mage/Index/Model/Process.php(209): Mage_Catalog_Model_Category_Indexer_Flat->reindexAll()
#5 /home/username/public_html/demo/app/code/core/Mage/Index/Model/Process.php(255): Mage_Index_Model_Process->reindexAll()
#6 /home/username/public_html/demo/app/code/core/Mage/Index/controllers/Adminhtml/ProcessController.php(178): Mage_Index_Model_Process->reindexEverything()
#7 /home/username/public_html/demo/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Index_Adminhtml_ProcessController->massReindexAction()
#8 /home/username/public_html/demo/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('massReindex')
#9 /home/username/public_html/demo/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#10 /home/username/public_html/demo/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#11 /home/username/public_html/demo/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#12 /home/username/public_html/demo/index.php(87): Mage::run('', 'store')
#13 {main}
我不知道还有什么其他的解决办法。我尝试删除锁文件并再次重新编制索引 我也试过截断平面表格,但也没用


非常感谢您的帮助。

可能会出现两种情况

一,。使用此文档刷新您的数据只需扔下此

或者第二个是

二,。禁用我的所有第三方扩展,除了标记为Mage.*的扩展


希望它一定会对您有所帮助。

尝试使用脚本文件运行索引

在根目录中创建一个文件reindexing.php

<?php
 require_once 'app/Mage.php';
 $app = Mage::app('admin');
 umask(0);
 for ($index = 1; $index <= 8; $index++) {
     $process = Mage::getModel('index/process')->load($index);
     $process->reindexAll();
 }
 ?>

然后清除magento all缓存并以

的方式运行此文件。我尝试了通过internet找到的所有方法来解决此问题,但没有任何帮助。所以,我决定自己解决这个问题。 我一直调试并跟踪错误到数据库,了解到重新索引的问题,异常消息:无法创建没有列注释的表意味着eav_属性中列前端_标签的某些值为null或0。 因此,首先我需要运行以下查询并添加前端标签(如果它们为null或零),并在值为null或零的属性的前端标签中添加值

瞧,问题解决了:

以下是我为解决此问题而运行的查询:

列出空值:

选择e.* 从…起 eav_属性e 左连接eav_实体_类型et 在e.entity\u type\u id=et.entity\u type\u id上 哪里 et.entity_type_code='catalog_category'和 e、 前端标签为空

然后我修复了空值:

选择e.* 从…起 eav_属性e 左连接eav_实体_类型et 在e.entity\u type\u id=et.entity\u type\u id上 哪里 et.entity_type_code='catalog_category'和 e、 前端标签='0'

在那之后,我可以从管理员或控制台运行索引过程,它运行得非常完美


希望你们会发现这个解决方案很有帮助。

我遇到了这个问题,结果是一个表需要修复

**SOLUTION:**

Enabled magento DB logging via:
lib/Varien/Db/Adapter/Pdo/Mysql.php 
Down around line 86,

you’ll see the following class variables:
protected $_debug = false;
protected $_logAllQueries = false;
protected $_logCallStack = false;
protected $_debugFile = ‘var/debug/sql.txt’;

Change all to true and then ran the reindex. 
Then checked the log file specified above. 
从shell运行以下命令:

php{directory\u root}/shell/indexer.php-reindex

我犯了如下错误:

“常规错误:145表”。/{datbasename}/mg_catalogsearch_fulltext”标记为崩溃,应修复”

我在上面提到的表上运行了mysql修复,然后可以毫无问题地运行索引器。

我尝试了本教程。这个错误可能有一些原因

内存限制和最大执行时间的低值

无写入权限/var

过多的产品导致过载

数据库中表的损坏 您可以尝试以下解决方案

增加内存限制和最大执行时间

打开php.ini文件并添加这两行

memory_limit = 2048M

max_execution_time = 300
允许/var文件夹的写入权限

您可以为/var文件夹设置755或777,并查看错误是否消失

通过命令行运行重新索引 打开ssh客户端并运行以下命令

php shell/indexer.php --reindex
使用phpmyadmin修复数据库

打开phpmyadmin并执行所有数据库修复,以解决无法初始化索引器进程的问题,您需要运行以下步骤

解决方案1:-

这通常发生在启用“使用平面目录类别”时 并使用平面目录产品

请通过Putty连接SSH运行以下命令:-

以下是用于重新编制索引的单独命令:-

php shell/indexer.php-reindex目录\u类别\u平面

php shell/indexer.php-reindex目录\类别\产品

php shell/indexer.php-reindex catalogsearch\u全文

或运行所有重新索引:-

php shell/indexer.php-reindexall

然后清除magento所有缓存

解决方案2:-

尝试使用PHP脚本文件运行索引。 在根目录中创建一个文件reindex_custom.php

<?php
 require_once 'app/Mage.php';
 $app = Mage::app('admin');
 umask(0);
 for ($index = 1; $index <= 8; $index++) {
     $process = Mage::getModel('index/process')->load($index);
     $process->reindexAll();
 }
 ?>

然后清除magento all缓存并以

身份运行此文件。我猜某些第三方模块添加了一些自定义类别属性列,但它也未能为新列设置注释。您是否已经检查了触发错误的列?抱歉,所有这些过程都不起作用。在发布问题之前,我尝试了这些方法。这不起作用,并产生了相同的错误,即我在上面发布的错误。我无法将其用于Magento 1.9.1。页面返回
错误。我收到以下错误,致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[23000]@bn00d”。您的意思是我必须用“0”替换“null”值吗。我不明白你在这些条目上替换了什么