Antworten:
Beim Versuch, einige Kategorien nach dem Importieren von Daten mit dem Magento-Datenmigrations-Tool zu aktualisieren, wurde gerade der gleiche Fehler angezeigt (asymmetrisches Transaktions-Rollback).
Eine manuelle Neuindizierung hat das Problem für mich behoben. Um Ihre Datenbank manuell über ssh neu zu indizieren, führen Sie einfach den folgenden Befehl aus Ihrer Magento-Installation aus:
php bin/magento indexer:reindex
Wenn dies nicht hilft, sollten Sie sich den folgenden Fehlerbericht ansehen: https://github.com/magento/magento2/issues/3720
Das Problem wurde behoben und die folgenden Schritte sind ausgeführt
Neu indizieren mit dem folgenden Befehl
php bin/magento indexer:reindex
Führen Sie die folgenden Befehle aus
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Geben Sie dem var/generation
Ordner Berechtigungen .
Dieser Fehler tritt auch in einer Situation auf, in der Sie eine externe Suchmaschine (Solr oder Elasticsearch) konfiguriert haben und die beim Speichern von Produkten / Kategorien nicht verfügbar ist.
Es ist keine vollständige Lösung, kann Ihnen jedoch in einigen Fällen helfen, die Ursache des Problems zu ermitteln. Wenn Sie das Around Save Plugin in dieser Klasse Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
auskommentieren, wird der Ausnahmefehler angezeigt
Wenn Sie einen flachen Katalog verwenden und die Neuindizierung nicht funktioniert, sind Ihnen möglicherweise die Einschränkungen für MySQL-Zeilen ausgegangen . Sie sollten entweder den flachen Katalog deaktivieren oder die Anzahl der Attribute reduzieren, die used in product listing
die used for sorting in product listing
Optionen und verwenden.
Ich habe eine andere Lösung für dieses eine Problem und es ist einfach.
Sie können nur den Neuindizierungsmodus für den produktbezogenen Indexer ändern -> Nach Zeitplan aktualisieren .
Ich habe auch ein Problem mit dem Asymmetric-Transaktions-Rollback-Fehler beim MySql InnoDB-Cluster. Daher konnte ich das Produkt und die Kategorie nicht speichern, und wenn ich die Fehlermeldung drucke
`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
Nach einer langen Suche behebt dieses Commit mein Problem. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67bd8f89c7c2345c6