如何修復在Magento 2中重新索引時的死鎖錯誤

Magento版本:2.1.9 
模式:Production
索引模式:Update on save

總產品:18k 
總客戶:54k 
總訂單:18k

開發人員嘗試重新建立索引后,會生成exception.log文件,其中包含此文件中的以下錯誤。同時,服務器被卡住,需要重新啟動。然后,該網站才可以照常運行。

“PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction”

那么,如何解決這個死鎖錯誤以及手動重新編制索引的最佳方法?

解決方案:

有3個簡單的步驟來處理這個Magento 2死鎖錯誤:

    • 第1步:在本地打開數據庫,然后運行SQL:

 

DROP TABLE `catalog_category_product_index`;
DROP TABLE `catalog_category_product_index_tmp`;


CREATE TABLE `catalog_category_product_index` (
  `category_id` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Category ID',
  `product_id` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Product ID',
  `position` int(11) DEFAULT NULL COMMENT 'Position',
  `is_parent` smallint(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Is Parent',
  `store_id` smallint(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Store ID',
  `visibility` smallint(5) UNSIGNED NOT NULL COMMENT 'Visibility'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Catalog Category Product Index';
ALTER TABLE `catalog_category_product_index`
  ADD PRIMARY KEY (`category_id`,`product_id`,`store_id`),
  ADD KEY `CAT_CTGR_PRD_IDX_PRD_ID_STORE_ID_CTGR_ID_VISIBILITY` (`product_id`,`store_id`,`category_id`,`visibility`),
  ADD KEY `CAT_CTGR_PRD_IDX_STORE_ID_CTGR_ID_VISIBILITY_IS_PARENT_POSITION` (`store_id`,`category_id`,`visibility`,`is_parent`,`position`);
CREATE TABLE `catalog_category_product_index_tmp` (
  `category_id` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Category ID',
  `product_id` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Product ID',
  `position` int(11) NOT NULL DEFAULT '0' COMMENT 'Position',
  `is_parent` smallint(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Is Parent',
  `store_id` smallint(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Store ID',
  `visibility` smallint(5) UNSIGNED NOT NULL COMMENT 'Visibility'
) ENGINE=MEMORY DEFAULT CHARSET=utf8 COMMENT='Catalog Category Product Indexer Temp Table';
ALTER TABLE `catalog_category_product_index_tmp`
  ADD KEY `CAT_CTGR_PRD_IDX_TMP_PRD_ID_CTGR_ID_STORE_ID` (`product_id`,`category_id`,`store_id`);

    • 第2步:嘗試在本地重新索引

    • 步驟3:如果您可以在本地重新編制索引,然后再在服務器上重新編制索引

 

我們向您展示了3個步驟來解決在Magento CE 2.1.9中重新索引時發生的死鎖錯誤。如果您在按照說明進行操作時遇到任何問題,請聯系我們


上一篇:7種方法讓你的Magento 2主題模板速度加快 下一篇:50種方法立即提升您的Magento網站性能
  • 版權聲明:內容來自互聯網不代表本站觀點,2018-06-13發表于 magento教程欄目。
  • 轉載請注明: 如何修復在Magento 2中重新索引時的死鎖錯誤| magento教程 +復制鏈接