# 1273 - Неизвестное сопоставление: 'utf8mb4_unicode_520_ci'

75

У меня есть сайт WordPress на моем локальном сервере WAMP. Но когда я загружаю свою базу данных в живой сервер, я получаю ошибку

#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci

Любая помощь будет оценена!

  • 16
    sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
  • 1
    Спасибо @NabilKadimi
Показать ещё 3 комментария
Теги:
collation

8 ответов

101
Лучший ответ

Вы можете решить это, найдя

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

в файле .sql и

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
  • 13
    Я рекомендую ответ от Sabba ( stackoverflow.com/a/44122258/168309 ), так как он сохраняет utf8mb4
  • 3
    Приведенное ниже решение @Sabba Keynejad лучше, на мой взгляд, поскольку оно поддерживает mb4, вам следует сначала попробовать это.
Показать ещё 5 комментариев
171

Я считаю, что эта ошибка вызвана тем, что на локальном сервере и в реальном времени работают разные версии MySQL. Чтобы решить эту проблему:

  1. Откройте файл sql в текстовом редакторе
  2. Найти и заменить все utf8mb4_unicode_520_ci с помощью utf8mb4_unicode_ci
  3. Сохранить и загрузить на новый mySql db

Надеюсь, что это поможет Изображение 3423

  • 1
    Работает для меня! Просто - если у вас достаточно маленькая база данных. Спасибо!
  • 1
    КОНЕЧНО НЕТ!!! Было широко задокументировано, что utf8mb4_unicode_520_ci имеет гораздо лучшую поддержку UTF-8, чем utf8mb4_unicode_ci ! Соус: mysql.rjweb.org/doc.php/charcoll#best_practice с визуальным уточнением, доказывающим, что 520_ci превосходит его: mysql.rjweb.org/utf8_collations.html
Показать ещё 4 комментария
36

В моем случае получается мой
на новом сервере выполнялся MySQL 5.5,
старый сервер выполнял MySQL 5.6.
Поэтому я получил эту ошибку при попытке импортировать файл .sql который я экспортировал с моего старого сервера.

MySQL 5.5 не поддерживает utf8mb4_unicode_520_ci, но
MySQL 5.6.

Обновление MySQL 5.6 на новом сервере позволило решить проблему с ошибкой!

Если вы хотите сохранить MySQL 5.5, вы можете:
- сделать копию экспортированного файла .sql
- заменить экземпляры utf8mb4unicode520_ci и utf8mb4_unicode_520_ci
... с utf8mb4_unicode_ci
- импортируйте обновленный файл .sql.

  • 7
    Реальный ответ прямо здесь.
  • 2
    Это абсолютно лучший способ сделать это, если у вас есть полный контроль над вашим сервером. Обновите новый сервер, чтобы он соответствовал старому серверу. Если у вас нет доступа для обновления вашего нового расположения на сервере, метод find-replace, вероятно, будет в порядке, но в любом случае, когда вы можете просто сделать это обновление, вам следует.
Показать ещё 1 комментарий
9

Откройте файл sql в текстовом редакторе;

1. Поиск: utf8mb4_unicode_ci Заменить: utf8_general_ci (Заменить все)

2. Поиск: utf8mb4_unicode_520_ci Заменить: utf8_general_ci (Заменить все)

3. Поиск: utf8mb4 Заменить: utf8 (Заменить все)

Сохранить и загрузить!

  • 0
    Работает отлично
5

просто удалите "520_"
utf8mb4_unicode_520_ciutf8mb4_unicode_ci

4

найти и заменить:

utf8mb4_unicode_520_ci

с

utf8_general_ci

в целом файле sql

  • 1
    general и utf8 - оба шага назад.
2

легко заменить

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
  • 0
    В macOS: sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
0

Поздно на вечеринку, но в случае, если это происходит с установкой WORDPRESS:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

В phpmyadmin, в разделе export method > Format-specific options (пользовательский экспорт)

Установите в: MYSQL40

Если вы попытаетесь импортировать сейчас, вы можете получить еще одно сообщение об ошибке:

1064 - You have an error in your SQL syntax;.....

Это потому, что более старая опция TYPE которая была синонимом ENGINE была удалена в MySQL 5.5.

Откройте файл .sql, найдите и замените все экземпляры

из TYPE= в ENGINE=

Теперь импорт должен идти гладко.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню