Odpowiedzi:
Właśnie pojawiał się ten sam błąd (wycofywanie transakcji asymetrycznych), gdy próbowałem zaktualizować niektóre kategorie po zaimportowaniu danych za pomocą narzędzia do migracji danych Magento.
Ręczny reindex naprawił dla mnie problem, aby ręcznie reindeksować bazę danych za pomocą ssh, po prostu uruchom następujące polecenie z instalacji Magento:
php bin/magento indexer:reindex
Jeśli to nie pomoże, możesz rzucić okiem na następujący raport o błędzie: https://github.com/magento/magento2/issues/3720
Problem został rozwiązany i następujące kroki
Ponownie indeksuj za pomocą następującego polecenia
php bin/magento indexer:reindex
uruchom poniżej poleceń
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf var/generation/*
Nadaj uprawnienia do var/generation
folderu.
Ten błąd występuje również w sytuacji, gdy skonfigurowano zewnętrzną wyszukiwarkę (Solr lub Elasticsearch) i jest niedostępny podczas zapisywania produktu / kategorii.
Nie jest to kompletne rozwiązanie, ale w niektórych przypadkach może pomóc wykryć źródło problemu. Skomentuj wtyczkę save wokół tej klasy, Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product
a zobaczysz błąd wyjątku
Jeśli używasz płaskiego katalogu, a reindeksowanie nie działa, być może skończyły Ci się ograniczenia wierszy MySQL . Należy albo wyłączyć katalog płaski, albo zmniejszyć liczbę atrybutów korzystających used in product listing
z used for sorting in product listing
opcji i.
Mam inne rozwiązanie tego jednego problemu i jest to łatwe.
Wystarczy zmienić tryb reindeksu dla indeksatora związanego z produktem -> Aktualizuj zgodnie z harmonogramem.
Mam również problem z błędem wycofania transakcji asymetrycznej w klastrze MySql InnoDB, więc nie mogłem zapisać produktu i kategorii, a kiedy drukuję komunikat o błędzie
`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
Po długim przeszukiwaniu to zatwierdzenie rozwiązało mój problem. https://github.com/magento/magento2/commit/4b51ee19353fb39263991f38663ad2fabcb1ce84#diff-08d583954f382bd67bd8f89c7c2345c6