Ответы:
Я просто получал ту же ошибку (асимметричный откат транзакции), когда пытался обновить некоторые категории после импорта данных с помощью инструмента переноса данных Magento.
Ручная переиндексация исправила проблему для меня, чтобы вручную переиндексировать вашу базу данных через ssh, просто запустите следующую команду из вашей установки Magento:
php bin/magento indexer:reindex
Если это не поможет, возможно, вы захотите взглянуть на следующий отчет об ошибке: https://github.com/magento/magento2/issues/3720
Проблема решена, и следующие шаги
Переиндексировать с помощью следующей команды
php bin/magento indexer:reindex
запустить ниже команд
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Дайте разрешения на var/generation
папку.
Также эта ошибка возникает в ситуации, когда вы настроили внешнюю поисковую систему (Solr или Elasticsearch), и она недоступна при сохранении продукта / категории.
Это не полное решение, но оно может помочь вам определить источник проблемы в некоторых случаях. Закомментируйте плагин вокруг сохранения в этом классе, Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
и вы увидите ошибку исключения
Если вы используете плоский каталог и переиндексация не работает, то, возможно, вы просто исчерпали ограничения строки MySQL . Вы должны либо выключить плоский каталог или уменьшить количество атрибутов , которые используют used in product listing
и в used for sorting in product listing
опции.
У меня есть другое решение для этой проблемы, и это легко.
Просто вы можете изменить режим переиндексации для связанного с продуктом индексатора -> Обновление по расписанию.
Я также сталкиваюсь с ошибкой отката асимметричной транзакции с кластером MySql InnoDB, поэтому я не смог сохранить продукт и категорию, и когда я распечатываю сообщение об ошибке
`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
После долгих поисков этот коммит решил мою проблему. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67bd8f89c7c2345c6