Как исправить ошибку сопоставления «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 - база данных статуса | 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.

? Важная заметка

Для таблиц базы данных, которые вы исключили из резервной копии, обязательно вручную воссоздайте их данные на новом сервере. Поскольку эти таблицы относятся только к плагинам, проверьте, предлагают ли эти плагины способ экспорта данных в настройках плагина или же перенастройте плагин на новом сервере так же, как он был настроен на старом сервере.