Answers:
当我使用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)的情况下,也会发生此错误,并且在产品/类别保存期间不可用。
它不是一个完整的解决方案,但在某些情况下可以帮助您检测问题的根源。注释掉此类中的around save插件Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
,您将看到异常错误
我还面临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