У меня есть веб-сайт WordPress на моем локальном сервере WAMP . Но когда я загружаю свою базу данных на работающий сервер, я получаю сообщение об ошибке
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Набиль Кадими,
4
В приведенном ниже море решений поиска и замены не забудьте сначала проверить ответ @ SherylHohman - просто обновите его до mariadb / mysql 5.6, чтобы ваш сервер поддерживал эту сортировку.
Приведенное ниже решение @Sabba Keynejad лучше, на мой взгляд, поскольку оно поддерживает mb4, вам следует сначала попробовать это.
Маор Баразаны
Обратите внимание, мне пришлось заменить это в нескольких местах в файле SQL. Также были места, где я должен был сделать stackoverflow.com/a/44122258/1436129 ниже.
aubreypwd
На самом деле этот ответ сработал, когда связанный ответ Саббы не сработал. Предположительно из-за моей установки MySql по умолчанию. +1
ушел кодирование
это не работает, теперь это дает ошибку: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' я заменил utf8mb4_unicode_520_ciна, utf8mb4_unicode_ciи это работает, согласно ответу Саббы.
Haritsinh Gohil
286
Я считаю, что эта ошибка вызвана тем, что локальный сервер и живой сервер работают под разными версиями MySQL. Чтобы решить это:
Откройте файл SQL в вашем текстовом редакторе
Найти и заменить все utf8mb4_unicode_520_ciнаutf8mb4_unicode_ci
@John, статьи, на которые вы ссылаетесь, на самом деле не защищают этот комментарий. Их «Таким образом» даже нельзя правильно сформулировать из их предпосылки. В целом вся статья написана плохо, хотя, похоже, там есть какая-то хорошая информация. 520 использует более новую версию Unicode Collation Algorithm (UCA - версия 5.2.0) с разными весами, но сказать, что «имеет гораздо лучшую поддержку UTF-8», кажется более чем натянутым.
Гремио
Предположим, что стандартное тело (Unicode) обычно делает каждую более новую версию (5.20) «лучше», чем более старая версия (4.0).
Рик Джеймс
Это лучший ответ.
Niby
Я предлагаю это решение, потому что оно заменяет все вхождения "utf8mb4_unicode_520_ci". Принимая во внимание, что ответ савани сандип оставляет некоторые.
Ракеш
49
В моем случае оказывается, что мой
новый сервер работал 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файл.
Это абсолютно лучший способ сделать это, если у вас есть полный контроль над вашим сервером. Обновите новый сервер, чтобы он соответствовал старому серверу. Если у вас нет доступа для обновления вашего нового местоположения на сервере, метод find-replace, вероятно, будет в порядке, но в любом случае, когда вы можете просто сделать это обновление, вам следует.
Squarecandy
1
5,6 это когда 520 был добавлен.
Рик Джеймс
Это должен быть правильный ответ. Большинство других решений больше похоже на хаки. Спасибо @SherylHohman
Получение ошибки сопоставления # 1273 - Неизвестное сопоставление: 'utf8mb4_unicode_520_ci' вызвано различием версии MySQL, из которой вы экспортируете, и нашего сервера MySQL, на который вы импортируете. По сути, библиотека Wordpress для более новой версии проверяет, на какой версии SQL работает ваш сайт. Если он использует MySQL версии 5.6 или более, он предполагает использование нового и улучшенного алгоритма сопоставления Unicode (UCA), который называется utf8mb4_unicode_520_ci. Это замечательно, если вы не переместите свой сайт WordPress с более новой версии MySQL 5.6 на более старую версию MySQL до 5.6.
Чтобы решить эту проблему, вам нужно либо отредактировать файл экспорта SQL и выполнить поиск и замену, изменив все экземпляры utf8mb4_unicode_520_ci на utf8mb4_unicode_ci. Или следуйте инструкциям ниже, если у вас есть PHPMyAdmin:
Нажмите на вкладку «Экспорт» для базы данных.
Нажмите кнопку Custom.
Перейдите в раздел «Параметры, специфичные для формата», и измените раскрывающийся список для Системы баз данных или более старого сервера MySQL, чтобы максимизировать совместимость вывода с: от NONE до MYSQL40.
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Ответы:
Вы можете решить это, найдя
в вашем
.sql
файле, и поменять егоисточник
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'
я заменилutf8mb4_unicode_520_ci
на,utf8mb4_unicode_ci
и это работает, согласно ответу Саббы.Я считаю, что эта ошибка вызвана тем, что локальный сервер и живой сервер работают под разными версиями MySQL. Чтобы решить это:
utf8mb4_unicode_520_ci
наutf8mb4_unicode_ci
надеюсь, это поможет
источник
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В моем случае оказывается, что мой
новый сервер работал
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
файл.источник
Откройте файл sql в вашем текстовом редакторе;
1. Поиск: utf8mb4_unicode_ci Заменить: utf8_general_ci (Заменить все)
2. Поиск: utf8mb4_unicode_520_ci Заменить: utf8_general_ci (Заменить все)
3. Поиск: utf8mb4 Заменить: utf8 (Заменить все)
Сохранить и загрузить!
источник
просто удалите "520_"
utf8mb4_unicode_520_ci
→utf8mb4_unicode_ci
источник
легко заменить
источник
sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Я просто открыл файл dump.sql в Notepad ++ и нажал CTRL + H, чтобы найти и заменить строку « utf8mb4_0900_ai_ci » и заменил ее на « utf8mb4_general_ci ». Ссылка на источник https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/
источник
найти и заменить:
с участием
в целом файл sql
источник
general
иutf8
оба шага назад.Поздно на вечеринку, но в случае, если это происходит с
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=
Теперь импорт должен идти гладко.
источник
Получение ошибки сопоставления # 1273 - Неизвестное сопоставление: 'utf8mb4_unicode_520_ci' вызвано различием версии MySQL, из которой вы экспортируете, и нашего сервера MySQL, на который вы импортируете. По сути, библиотека Wordpress для более новой версии проверяет, на какой версии SQL работает ваш сайт. Если он использует MySQL версии 5.6 или более, он предполагает использование нового и улучшенного алгоритма сопоставления Unicode (UCA), который называется utf8mb4_unicode_520_ci. Это замечательно, если вы не переместите свой сайт WordPress с более новой версии MySQL 5.6 на более старую версию MySQL до 5.6.
Чтобы решить эту проблему, вам нужно либо отредактировать файл экспорта SQL и выполнить поиск и замену, изменив все экземпляры utf8mb4_unicode_520_ci на utf8mb4_unicode_ci. Или следуйте инструкциям ниже, если у вас есть PHPMyAdmin:
источник
В моем случае я заменяю его
utf8_general_ci
на sed следующим образом:После этого я могу импортировать его без каких-либо проблем.
источник