Php Magento-重新编制索引过程中出现问题-目录产品

Php Magento-重新编制索引过程中出现问题-目录产品,php,mysql,magento,e-commerce,Php,Mysql,Magento,E Commerce,我刚刚在运行v1.6的Magenot安装中重新索引了数据,现在收到一条消息,说明 There was a problem with reindexing process. 对于类别产品,现在任何类别中都不会显示任何产品。我需要尽快解决这个问题,因为它发生在一个现场 有没有人知道是什么原因导致了这种情况,以及解决方法是什么 我尝试过删除var/report和var/locks上的内容,但没有成功。似乎有一些修复,但不是专门针对类别产品 提前感谢以下是对我有用的东西: 找到core\u url\u

我刚刚在运行v1.6的Magenot安装中重新索引了数据,现在收到一条消息,说明

There was a problem with reindexing process.
对于类别产品,现在任何类别中都不会显示任何产品。我需要尽快解决这个问题,因为它发生在一个现场

有没有人知道是什么原因导致了这种情况,以及解决方法是什么

我尝试过删除var/report和var/locks上的内容,但没有成功。似乎有一些修复,但不是专门针对类别产品


提前感谢

以下是对我有用的东西:

  • 找到core\u url\u rewrite,备份表,然后截断它

  • 结清所有现金

  • 在索引管理中重新索引目录索引重写


  • 现在一切都应该好了…

    这可能是任何事情。

    重新编制索引过程出现问题

    当PHP异常从
    reindexProcessAction
    操作冒泡到表面时发生错误。你可以在这里看到代码

    #File: app/code/core/Mage/Index/controllers/Adminhtml/ProcessController.php
    public function reindexProcessAction()
    {
        $process = $this->_initProcess();
        if ($process) {
            try {
                Varien_Profiler::start('__INDEX_PROCESS_REINDEX_ALL__');
    
                $process->reindexEverything();
                Varien_Profiler::stop('__INDEX_PROCESS_REINDEX_ALL__');
                $this->_getSession()->addSuccess(
                    Mage::helper('index')->__('%s index was rebuilt.', $process->getIndexer()->getName())
                );
            } catch (Mage_Core_Exception $e) {
                $this->_getSession()->addError($e->getMessage());
            } catch (Exception $e) {
                $this->_getSession()->addException($e,
                     Mage::helper('index')->__('There was a problem with reindexing process.')
                );
            }
        } else {
            $this->_getSession()->addError(
                Mage::helper('index')->__('Cannot initialize the indexer process.')
            );
        }
    
        $this->_redirect('*/*/list');
    }
    
    具体来说,这条线

    Mage::helper('index')->__('There was a problem with reindexing process.')
    
    找到此错误底部的最快方法是暂时更改上面的行,以便打印出异常消息。Magento超越了默认的异常消息——可能是为了防止最终用户看到“丑陋”的PHP错误。将上面的内容更改为

    Mage::helper('index')->__('There was a problem with reindexing process. ' . $e->getMessage())
    

    然后再次重新编制索引。PHP错误消息(应该指向问题代码)将包含在错误消息中。这将有助于指出导致索引失败的确切问题

    嘿,伙计,你可以截断目录表,然后再次运行reindex,它会很有魅力地运行。。 用于截断目录\u产品\u平面的表名称_*

    “注意:在数据库中进行任何更改之前,请先进行备份”
    mysqldump[dbname]>[anyname].sql

    在这里,我找到了另一个解决方案,它为我提供了帮助。 我首先创建reindex.php,并将其放在我的根文件夹中,然后通过下面的代码

    require_once 'app/Mage.php';
    umask( 0 );
    Mage :: app( "default" );
    Mage::log("Started Rebuilding Search Index At: " . date("d/m/y h:i:s"));
    $sql = "truncate csr_catalogsearch_fulltext;";
    $mysqli = Mage::getSingleton('core/resource')->getConnection('core_write');
    $mysqli->query($sql);
    for ($i = 1; $i <= 9; $i++) {
        $process = Mage::getModel('index/process')->load($i);
       $process->reindexAll();
    }
    echo Mage::log("Finished Rebuilding Search Index At: " . date("d/m/y h:i:s"));
    
    然后从amdin面板中清除所有缓存并运行重新索引进程,该进程将成功运行。
    我建议您这样做,但我不确定这是否有助于解决您的问题

    你有shell访问权限吗?然后尝试从shell(
    php shell/indexer.php reindexall
    )启动索引进程。它现在显示,并且错误无法初始化索引进程。我试着加上$e->getMessage())到行的末尾Mage::helper('index')->\uu('无法初始化索引器进程'),但它没有显示任何内容。您知道问题可能是什么吗?如果您遇到不同的错误,上面的代码将永远不会运行。如果_initProcess中的代码无法运行,则会引发“无法初始化索引器进程”,只有在进程页面未传递请求id参数时才会发生这种情况。这应该足够你继续下去了。祝你好运好的,我知道_initProcess无法运行,这就是我得到错误的原因,但我不确定从那里去解决问题。当我运行reindex时,是否有方法将错误输出?我真的很感谢你的帮助,因为我有点不知所措!在方法中添加(临时)调试代码以确定失败的原因。变量转储($processId);出口查看ID是否正确传递等。尝试找出此方法返回false的原因,它可能/应该指向系统的错误。我的问题与删除数据库权限有关。在我授予数据库用户DROP权限后,问题就解决了。非常有用。。 General error: 1005 Can't create table catalog_category_flat_store_1' (errno: 150)
    ALTER TABLE catalog_category_entity ENGINE=INNODB;
    ALTER TABLE core_store ENGINE=INNODB;