Wordpress 4.2 wprowadził obsługę kodowania znaków „utf8mb4” ze względów bezpieczeństwa , ale obsługuje go tylko MySQL 5.5.3 i nowsze . Sposób, w jaki instalator (i aktualizator) sobie z tym radzi, polega na sprawdzeniu wersji MySQL, a baza danych zostanie uaktualniona do utfmb4 tylko wtedy, gdy jest obsługiwana .
Brzmi świetnie w teorii, ale problem (jak odkryłeś) polega na migracji baz danych z serwera MySQL, który obsługuje utf8mb4 na taki, który tego nie robi. Chociaż odwrotnie powinno działać, jest to w zasadzie operacja jednokierunkowa.
Jak podkreślił Evster ty może mieć sukces przy użyciu funkcji phpMyAdmin za „Eksport”. Użyj opcji „ Metoda eksportu: niestandardowa ” i „ System bazy danych lub starszy serwer MySQL, aby zmaksymalizować kompatybilność danych wyjściowych z: ” rozwijanym menu wybierz „ MYSQL 40 ”.
W przypadku eksportu z wiersza poleceń za pomocą mysqldump. Spójrz na flagę:
$ mysqldump --compatible=mysql4
Uwaga: Jeśli w bazie danych znajdują się 4-bajtowe znaki, zostaną one uszkodzone.
Wreszcie, dla każdego, kto korzysta z popularnej wtyczki WP Migrate DB PRO, użytkownik w tym wątku Wordpress.org informuje, że migracja jest zawsze obsługiwana poprawnie, ale nie mogłem znaleźć niczego oficjalnego.
Wtyczka WP Migrate DB tłumaczy bazę danych z jednego sortowania na drugi, gdy przenosi strony 4.2 między hostami z MySQL w wersji wcześniejszej lub późniejszej niż 5.5.3
Obecnie wydaje się, że nie ma możliwości zrezygnowania z aktualizacji bazy danych. Jeśli więc używasz przepływu pracy, w którym migrujesz witrynę z serwera lub hosta lokalnego za pomocą MySQL> 5.5.3, do takiego, który używa starszej wersji MySQL, możesz mieć pecha.