Введение
Сравнение — это набор правил, определяющих, как сравнивать и сортировать строки символов на сервере базы данных. В этом руководстве мы обсудим ошибку, возникшую при восстановлении базы данных на сервере.
Давайте посмотрим на проблему и решение проблемы, с которой столкнулись недавно.
Проблема
При переносе приложения WordPress я столкнулся со следующей ошибкой при восстановлении базы данных MySQL. Идентификатор сравнения может варьироваться в зависимости от версии MySQL.
Сообщение об ошибке:
Error 1273 (HY000) at line 36 Unknown collation: 'utf8mb4_unicode_520_ci'
Вот решение для вас.
Решение
После поиска ошибки я обнаружил, что сервер MySQL, работающий на другом сервере, является более старой версией, чем источник. Таким образом, мы обнаруживаем, что целевой сервер не поддерживает параметры сортировки utf8mb4_unicode_520_ci.
Чтобы исправить это, я внес небольшое изменение в файл резервной копии. Отредактируйте файл резервной копии базы данных в текстовом редакторе и замените все вхождения « utf8mb4_unicode_520_ci » на « utf8mb4_general_ci ». Также, если вы нашли « CHARSET=utf8mb4 », замените его на « CHARSET=utf8 ».
Замените эту строку:
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Со следующим:
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Сохраните файл резервной копии и восстановите базу данных.
Пользователи системы Linux могут использовать команду sed для прямой замены текста в файлах:
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' backup.sql
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql
Все, теперь база успешно восстановлена без ошибок.
Вывод
Надеюсь, это решение помогло вам решить проблему « Неизвестная сортировка: 'utf8mb4_unicode_520_ci » с базами данных MySQL.