17

我的 Magento 1.6.2.0 商店中的索引管理有问题。基本上我不能让他们更新。状态说Processing,但它现在这样说已经超过 3 周了。

当我尝试重新索引时,我收到了这条消息Stock Status Index process is working now. Please try run this process later,但现在是 3 周?所以看起来这个过程被冻结了,但我不知道如何重新启动。

有任何想法吗?

干杯

4

5 回答 5

31

每当您启动索引过程时,Magento 都会将锁定文件写入文件var/locks夹。

$ cd /path/to/magento
$ ls var/locks
index_process_1.lock    index_process_4.lock    index_process_7.lock
index_process_2.lock    index_process_5.lock    index_process_8.lock
index_process_3.lock    index_process_6.lock    index_process_9.lock

锁定文件可防止其他用户启动索引进程。但是,如果索引请求在完成之前超时或失败,则锁定文件将处于锁定状态。这可能就是发生在你身上的事情。我建议您检查锁定文件的最后修改日期,以确保其他人现在没有运行重新索引器,然后删除锁定文件。这将清除您的

股票状态指数流程正在运行。请稍后尝试运行此进程

错误。之后,一次运行一个索引器以确保每个都完成。

于 2013-01-02T20:53:05.597 回答
3

您好,如果没有,您是否手动调用脚本然后在您的根文件夹中创建一个文件并将此代码写入其中

require_once 'app/Mage.php';
umask( 0 );
Mage :: app( "default" );
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
$process->reindexAll();

此代码有时会手动为您的 magento 建立索引,如果您的 magento 商店包含大量产品,那么它需要大量时间来重新索引产品,因此当您可以从管理员进入索引管理时,它会显示一些索引处理阶段,所以这段代码可能会帮助您将处理阶段删除到索引的就绪阶段。

或者,如果您有权限,也可以使用 SSH 进行索引。索引也更快

于 2013-01-03T05:18:36.353 回答
2

对于新版本的 magento ,即 2.1.3 我不得不使用这个解决方案: http ://www.elevateweb.co.uk/magento-ecommerce/magento-error-sqlstatehy000-general-error-1205-lock-wait-timeout - 超过

如果您正在运行大量自定义脚本并在数据库连接有机会关闭之前终止脚本,则可能会发生这种情况

如果您从 CLI 登录 MySQL 并运行命令

显示处理程序;

你会得到以下输出

+———+——————–+——————-+———–+———+——+——-+——————+———–+ —————+———–+

| 身份证 | 用户 | 主持人 | 分贝 | 命令 | 时间 | 状态 | 信息 | 行_发送 | 行检查 | 行阅读 |

+———+——————–+——————-+———–+———+——+——-+——————+———–+ —————+———–+

| | 6794372 | 数据库用户| 111.11.0.65:21532 | 数据库名称| 睡眠 | 3800 | | 空 | 0 | 0 | 0
| | 6794475 | 数据库用户| 111.11.0.65:27488 | 数据库名称| 睡眠 | 3757 | | 空 | 0 | 0 | 0
| | 6794550 | 数据库用户| 111.11.0.65:32670 | 数据库名称| 睡眠 | 3731 | | 空 | 0 | 0 | 0
| | 6794797 | 数据库用户| 111.11.0.65:47424 | 数据库名称 | 睡眠 | 3639 | | 空 | 0 | 0 | 0
| | 6794909 | 数据库用户| 111.11.0.65:56029 | 数据库名称| 睡眠 | 3591 | | 空 | 0 | 0 | 0
| | 6794981 | 数据库用户| 111.11.0.65:59201 | 数据库名称| 睡眠 | 3567 | | 空 | 0 | 0 | 0
| | 6795096 | 数据库用户| 111.11.0.65:2390 | 数据库名称| 睡眠 | 3529 | | 空 | 0 | 0 | 0
| | 6795270 | 数据库用户| 111.11.0.65:10125 | 数据库名称 | 睡眠 | 3473 | | 空 | 0 | 0 | 0
| | 6795402 | 数据库用户| 111.11.0.65:18407 | 数据库名称| 睡眠 | 3424 | | 空 | 0 | 0 | 0
| | 6795701 | 数据库用户| 111.11.0.65:35679 | 数据库名称| 睡眠 | 3330 | | 空 | 0 | 0 | 0
| | 6800436 | 数据库用户| 111.11.0.65:57815 | 数据库名称| 睡眠 | 1860 | | 空 | 0 | 0 | 0
| | 6806227 | 数据库用户| 111.11.0.67:20650 | 数据库名称| 睡眠 | 188 | | 空 | 1 | 0 | 0
+———+——————–+——————-+——————–+———+——+———-+——————+———– +——————+———–+

15 行一组(0.00 秒)

您可以看到作为示例 6794372 命令是 sleep 并且时间是 3800。这是防止其他操作这些进程应该使用命令 1 1 被杀死。

杀死 6794372; 一旦你杀死了所有的睡眠连接,事情应该会重新开始正常工作

于 2017-03-02T16:24:34.517 回答
1

你需要做两个步骤:

  1. 授予 var/locks 文件夹 777 许可
  2. 删除 var/locks 文件夹的所有文件
于 2013-12-30T10:56:51.967 回答
0

每当您启动索引过程时,Magento 都会将锁定文件写入 var/locks 文件夹。所以你需要做两个步骤:

  1. 授予 777 对 var/locks 文件夹的权限
  2. 删除 var/locks 文件夹的所有文件。

现在刷新管理面板中的索引管理页面。享受!!

于 2015-05-28T08:26:35.800 回答