Réponses:
J'obtenais simplement la même erreur (restauration de transaction asymétrique) lorsque j'ai essayé de mettre à jour certaines catégories après l'importation de données à l'aide de l'outil de migration de données Magento.
Une réindexation manuelle a résolu le problème pour moi, pour réindexer manuellement votre base de données via ssh, il suffit d'exécuter la commande suivante à partir de votre installation Magento:
php bin/magento indexer:reindex
Si cela ne vous aide pas, vous pouvez consulter le rapport de bogue suivant: https://github.com/magento/magento2/issues/3720
Le problème est résolu et voici les étapes
Réindexer à l'aide de la commande suivante
php bin/magento indexer:reindex
exécuter les commandes ci-dessous
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Donnez des autorisations au var/generation
dossier.
En outre, cette erreur se produit dans une situation où vous avez configuré un moteur de recherche externe (Solr ou Elasticsearch) et elle n'est pas disponible lors de l'enregistrement du produit / catégorie.
Ce n'est pas une solution complète mais elle peut vous aider à détecter la source du problème dans certains cas. Commentez le plugin de sauvegarde around dans cette classe Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
et vous verrez l'erreur d'exception
Si vous utilisez un catalogue plat et que la réindexation ne fonctionne pas, alors vous venez peut-être de manquer les limitations de ligne MySQL . Vous devez désactiver le catalogue plat ou réduire le nombre d'attributs qui utilisent used in product listing
les used for sorting in product listing
options et.
J'ai une autre solution pour ce seul problème et c'est facile.
Vous pouvez simplement changer le mode de réindexation pour l'indexeur lié au produit -> Mettre à jour par programme.
Je suis également confronté à un problème d' erreur de restauration de transaction asymétrique avec le cluster MySql InnoDB, donc je n'ai pas pu enregistrer le produit et la catégorie et lorsque j'imprime le message d'erreur
`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
Après une longue recherche, ce commit corrige mon problème. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67bd8f89c7c2345c6