Respuestas:
Estaba recibiendo el mismo error (reversión de transacción asimétrica) cuando intenté actualizar algunas categorías después de importar datos usando la herramienta de migración de datos Magento.
Un reindex manual solucionó el problema para mí, para reindexar manualmente su base de datos a través de ssh simplemente ejecute el siguiente comando desde su instalación de Magento:
php bin/magento indexer:reindex
Si eso no ayuda, puede echar un vistazo al siguiente informe de error: https://github.com/magento/magento2/issues/3720
El problema está resuelto y los siguientes son los pasos.
Reindex utilizando el siguiente comando
php bin/magento indexer:reindex
ejecutar debajo de los comandos
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Dar permisos a la var/generation
carpeta.
Además, este error ocurre en una situación en la que ha configurado un motor de búsqueda externo (Solr o Elasticsearch) y no está disponible durante el guardado del producto / categoría.
No es una solución completa, pero puede ayudarlo a detectar la fuente del problema en algunos casos. Comente el complemento Guardar guardado en esta clase Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
y verá el error de excepción
Si está utilizando un catálogo plano y la reindexación no funciona, entonces tal vez se haya quedado sin las limitaciones de la fila MySQL . Debe desactivar el catálogo plano o reducir la cantidad de atributos que usan used in product listing
las used for sorting in product listing
opciones y.
Tengo otra solución para este problema y es fácil.
Solo puede cambiar el modo reindexar para el indexador relacionado con el producto -> Actualizar por programación.
También me enfrento a un problema de error de reversión de transacción asimétrica con el clúster MySql InnoDB, por lo que no pude guardar el producto y la categoría y cuando imprimo el mensaje de error
`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
Después de una larga búsqueda, este commit solucionó mi problema. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67icsoftf89c7c2345c6