Как да коригирате грешка в съпоставянето „utf8mb4_0900_ai_ci“ при импортиране на база данни на WordPress

Ако превключвате вашата инсталация на WordPress от MySQL 8 сървър на MySQL 5.7 (или по-долу), най-вероятно ще срещнете 1273 – Неизвестно съпоставяне: ‘utf8mb4_0900_ai_ci’ грешка при опит за импортиране на базата данни. Без значение кои инструменти използвате за импортиране или експортиране на базата данни, не можете да избегнете тази грешка.

Въпреки това, ако преди това сте стартирали своя блог на MySQL 5.7 сървър и наскоро сте преминали към MySQL 8, но сега превключвате обратно към MySQL 5.7, тогава основните таблици на WordPress (публикации, таксономии, опции, коментари и т.н.) и всякакви плъгини сте инсталирали на сървъра MySQL 5.7 все още трябва да използвате съпоставянето „utf8mb4_unicode_520_ci“.

Можете да импортирате всички таблици от вашата база данни, която използва съпоставянето „utf8mb4_unicode_520_ci“. Така че това, което трябва да направите, е да намерите таблиците във вашата база данни, която използва съпоставяне „utf8mb4_0900_ai_ci“ и да ги изключите от експортирания архивен файл на базата данни.

🔎 Намерете кои таблици използват съпоставянето „utf8mb4_0900_ai_ci“

Трябва да намерите кои таблици във вашата база данни използват съпоставянето „utf8mb4_0900_ai_ci“, за да можем да изключим тези таблици при експортиране на базата данни.

Ако имате SSH достъп до сървъра и идентификационни данни за достъп до базата данни (който можете напълно да получите от файла wp-config.php), можете да изпълните следната команда, за да намерите лесно таблиците с сортиране „utf8mb4_0900_ai_ci“.

mysqlshow -u потребителско име -p --status база данни | grep "utf8mb4_0900_ai_ci"

? Заменете потребителско име и база данни с вашата база данни и потребителско име в командата по-горе.

Въведете вашата потребителска парола за база данни, когато бъдете подканени да Въведете паролата: и ще имате списък с таблици, използващи съпоставянето „utf8mb4_0900_ai_ci“ във вашата база данни.

Таблиците, използващи съпоставяне “utf8mb4_0900_ai_ci” трябва да са само от плъгини, които сте инсталирали след преминаване към MySQL 8. Запишете имената на таблиците, за да можете да ги изключите следващия път, когато експортирате вашата база данни.

💡 Съвет

Ако нямате SSH достъп до сървъра, изтеглете файла с база данни .sql на вашия компютър и го отворете с текстов редактор като Notepad++ и използвайте функцията за търсене (Ctrl +F), за да намерите кои таблици използват „utf8mb4_0900_ai_ci“ съпоставяне.

Експортиране на база данни, с изключение на таблици за съпоставяне „utf8mb4_0900_ai_ci“

Сега, когато имате имената на таблиците, използващи съпоставяне „utf8mb4_0900_ai_ci“, можете да експортирате нов архивен файл на база данни, който не включва таблиците „utf8mb4_0900_ai_ci“, за да можете да го импортирате в инсталация на WordPress, работеща на MySQL 5.7 сървър.

Ако приемем, че вече използвате WP-CLI за експортиране/импортиране на база данни на WordPress, изпълнете следната команда, за да експортирате вашата база данни, като изключите някои от таблиците.

wp db експорт --exclude_tables=име_на_таблица,име_на_таблица,име_на_таблица

? Сменете име_на таблица в командата по-горе с действителните имена на таблиците, която използва съпоставяне „utf8mb4_0900_ai_ci“.

Това е. Вече можете лесно да импортирате вашата база данни на WordPress на новия сървър, работещ с MySQL 5.7.

? Важна забележка

За таблици на база данни, които сте изключили от архивирането, не забравяйте да създадете ръчно данните им на новия сървър. Тъй като тези таблици са само за плъгини, проверете дали тези плъгини предлагат начин за експортиране на данни в настройките на плъгина или в противен случай преконфигурирайте плъгина на новия сървър по същия начин, по който е бил настроен на стария сървър.