เมื่อสร้างผลิตภัณฑ์ใหม่และพยายามบันทึกฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาดการย้อนกลับธุรกรรมที่ไม่สมมาตร
มีใครพบกับสิ่งนี้อีกไหม? กรุณาแชร์การแก้ไข :)
เมื่อสร้างผลิตภัณฑ์ใหม่และพยายามบันทึกฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาดการย้อนกลับธุรกรรมที่ไม่สมมาตร
มีใครพบกับสิ่งนี้อีกไหม? กรุณาแชร์การแก้ไข :)
คำตอบ:
ฉันเพิ่งได้รับข้อผิดพลาดเดียวกัน (การย้อนกลับรายการแบบไม่สมมาตร) เมื่อฉันพยายามอัปเดตบางหมวดหมู่หลังจากนำเข้าข้อมูลโดยใช้เครื่องมือย้ายข้อมูล Magento
ทำดัชนีคู่มือใหม่แก้ปัญหาให้ฉันด้วยการทำดัชนีฐานข้อมูลของคุณใหม่ด้วยตนเองผ่าน ssh เพียงแค่เรียกใช้คำสั่งต่อไปนี้จากการติดตั้ง Magento ของคุณ:
php bin/magento indexer:reindex
หากไม่ได้ผลคุณอาจต้องการดูรายงานข้อผิดพลาดต่อไปนี้: https://github.com/magento/magento2/issues/3720
ปัญหาได้รับการแก้ไขและต่อไปนี้เป็นขั้นตอน
สร้างดัชนีใหม่โดยใช้คำสั่งต่อไปนี้
php bin/magento indexer:reindex
เรียกใช้คำสั่งด้านล่าง
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
ให้สิทธิ์กับvar/generation
โฟลเดอร์
นอกจากนี้ข้อผิดพลาดนี้เกิดขึ้นในสถานการณ์เมื่อคุณกำหนดค่าเครื่องมือค้นหาภายนอก (Solr หรือ Elasticsearch) และไม่สามารถใช้งานได้ในระหว่างการบันทึกผลิตภัณฑ์ / หมวดหมู่
มันไม่ได้เป็นวิธีการแก้ปัญหาที่สมบูรณ์ แต่สามารถช่วยคุณตรวจสอบที่มาของปัญหาในบางกรณี แสดงความคิดเห็นเกี่ยวกับปลั๊กอินบันทึกรอบตัวในคลาสนี้Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
และคุณจะเห็นข้อผิดพลาดข้อยกเว้น
หากคุณกำลังใช้แคตตาล็อกแบนและ reindexing ไม่ทำงานแล้วบางทีคุณก็วิ่งออกมาจากข้อ จำกัด MySQL แถว คุณควรปิดแค็ตตาล็อกถาวรหรือลดจำนวนแอตทริบิวต์ที่ใช้used in product listing
และused for sorting in product listing
ตัวเลือก
ฉันมีวิธีแก้ไขปัญหาอื่นสำหรับปัญหานี้แล้วและก็ง่าย
เพียงคุณสามารถเปลี่ยนโหมดการทำดัชนีดัชนีสำหรับดัชนีที่เกี่ยวข้องกับผลิตภัณฑ์ -> อัปเดตตามกำหนดเวลา
ฉันยังประสบปัญหาข้อผิดพลาดการย้อนกลับรายการ Asymmetricกับคลัสเตอร์ MySql InnoDB ดังนั้นฉันไม่สามารถบันทึกผลิตภัณฑ์และหมวดหมู่ได้และเมื่อฉันพิมพ์ข้อความแสดงข้อผิดพลาด
`SQLSTATE[HY000]: General error: 1787 Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions., query was: CREATE TEMPORARY TABLE IF NOT EXISTS `catalog_product_index_eav_temp` LIKE `catalog_product_index_eav_tmp
หลังจากค้นหาไปนาน ๆ สิ่งนี้จะช่วยแก้ไขปัญหาของฉันได้ https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67bd8f89c7c2345c6