Risposte:
Stavo ottenendo lo stesso errore (rollback della transazione asimmetrica) quando ho provato ad aggiornare alcune categorie dopo aver importato i dati utilizzando lo strumento di migrazione dei dati Magento.
Un reindex manuale ha risolto il problema per me, per reindicizzare manualmente il tuo database tramite ssh basta eseguire il seguente comando dall'installazione di Magento:
php bin/magento indexer:reindex
Se ciò non aiuta, potresti voler dare un'occhiata alla seguente segnalazione di bug: https://github.com/magento/magento2/issues/3720
Il problema è stato risolto e di seguito sono riportati i passaggi
Reindicizzare utilizzando il seguente comando
php bin/magento indexer:reindex
esegui sotto i comandi
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Dare le autorizzazioni alla var/generation
cartella.
Inoltre, questo errore si verifica in una situazione in cui è stato configurato un motore di ricerca esterno (Solr o Elasticsearch) e non è disponibile durante il salvataggio del prodotto / categoria.
Non è una soluzione completa ma in alcuni casi può aiutarti a rilevare l'origine del problema. Commenta il plug-in di salvataggio in questa classe Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
e vedrai l'errore di eccezione
Se stai usando un catalogo semplice e la reindicizzazione non funziona, forse hai appena esaurito le limitazioni di riga di MySQL . È necessario disattivare il catalogo flat o ridurre il numero di attributi che utilizzano used in product listing
le used for sorting in product listing
opzioni e.
Ho un'altra soluzione per questo problema ed è facile.
Solo tu puoi cambiare la modalità reindex per l'indicizzatore relativo al prodotto -> Aggiorna secondo la pianificazione.
Sto anche affrontando un problema di rollback delle transazioni asimmetrico con il cluster MySql InnoDB, quindi non sono riuscito a salvare il prodotto e la categoria e quando stampo il messaggio di errore
`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
Dopo una lunga ricerca, questo commit risolve il mio problema. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67bd8f89c7c2345c6