Як виправити помилку зіставлення «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 export --exclude_tables=ім’я_таблиці,ім’я_таблиці,ім’я_таблиці

? Замінити table_name у наведеній вище команді з реальними іменами таблиць, яка використовує сортування “utf8mb4_0900_ai_ci”.

Це воно. Тепер ви можете легко імпортувати свою базу даних WordPress на новий сервер під керуванням MySQL 5.7.

? Важлива примітка

Для таблиць бази даних, які ви виключили з резервної копії, обов’язково вручну створіть їх дані на новому сервері. Оскільки ці таблиці містять лише плагіни, перевірте, чи пропонують ці плагіни можливість експортувати дані в налаштуваннях плагіна, або переналаштуйте плагін на новому сервері так само, як він був налаштований на старому сервері.