Respostas:
Eu estava recebendo o mesmo erro (reversão de transação assimétrica) quando tentei atualizar algumas categorias após importar dados usando a ferramenta de migração de dados Magento.
Uma reindexação manual corrigiu o problema para mim: para reindexar manualmente seu banco de dados via ssh, basta executar o seguinte comando na instalação do Magento:
php bin/magento indexer:reindex
Se isso não ajudar, consulte o seguinte relatório de bug: https://github.com/magento/magento2/issues/3720
O problema foi resolvido e a seguir estão as etapas
Reindexar usando o seguinte comando
php bin/magento indexer:reindex
executar comandos abaixo
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Dê permissões para a var/generation
pasta.
Além disso, esse erro ocorre em uma situação em que você configurou o mecanismo de pesquisa externo (Solr ou Elasticsearch) e não está disponível durante o salvamento do produto / categoria.
Não é uma solução completa, mas pode ajudá-lo a detectar a origem do problema em alguns casos. Comente o plug-in save em torno desta classe Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
e você verá o erro de exceção
Se você estiver usando catálogo simples e a reindexação não funcionar, talvez você tenha acabado de ficar sem as limitações de linha do MySQL . Você deve desativar o catálogo simples ou reduzir o número de atributos que usam used in product listing
as used for sorting in product listing
opções e.
Tenho outra solução para esse problema e é fácil.
Apenas você pode alterar o modo de reindexação para o indexador relacionado ao produto -> Atualizar por agendamento.
Também estou enfrentando um problema de erro de reversão de transação assimétrica com o cluster MySql InnoDB. Portanto, não consegui salvar o produto e a categoria e quando imprimo a mensagem de erro
`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
Após uma longa pesquisa, esse commit corrige meu problema. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67 dedicadaf89c7c2345c6