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