# 1273 – Неизвестная сортировка: ‘utf8mb4_unicode_ci’ Cpanel

У меня есть firebase database wordpress на моей локальной машине, которую я хочу перенести на размещенный phpMyAdmin на Cpanel. Однако, когда я пытаюсь импортировать базу данных в среду, я продолжаю получать эту ошибку

#1273 - Unknown collation: 'utf8mb4_unicode_ci' 

Я попытался разобраться с Google, и единственным решением, которое я могу найти, является эта ошибка phpmysql – # 1273 – # 1273 – Неизвестная сортировка: ‘utf8mb4_general_ci’, которая по -прежнему не очень помогает. Я попытался очистить cookies, но он все равно не сработает. Пожалуйста помоги!

У меня была такая же проблема, как и на всех наших серверах, работающих на старых версиях MySQL. Это можно решить, выполнив скрипт PHP. Сохраните этот код в файл и запустите его, введя имя базы данных, пользователя и пароль, и он изменит сортировку с utf8mb4/utf8mb4_unicode_ci на utf8/utf8_general_ci

    DB-Convert    

Convert your Database to utf8_general_ci!

dbname:
dbuser:
dbpass:
$value) { mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"); }} echo ""; } ?>

Техника в этом посте работала для меня

1) Перейдите на вкладку «Экспорт» для базы данных

2) Нажмите переключатель «Пользовательский»

3) Перейдите в раздел «Параметры, специфичные для формата», и измените раскрывающийся список «Система баз данных или более старый сервер MySQL для максимизации совместимости вывода с:» от NONE до MYSQL40.

4) Прокрутите вниз и нажмите «GO».

Я не уверен, что это приведет к потере данных, однако в тот раз, когда я это пробовал, я не заметил. Также никто не отвечал на форумах, связанных выше.

Редактирование 8/12/16 – я считаю, что экспорт базы данных таким образом заставляет меня потерять данные, сохраненные в виджетах Black Studio TinyMCE Visual Editor , хотя я не выполнил несколько тестов для подтверждения.

Лучше всего экспортировать свою базу данных в .sql , открыть ее на Notepad ++ и перейти в «Поиск и замена». Затем вы помещаете «utf8mb4» в поиск и «utf8» на замену. Он заменит utf8mb4_unicode_ci на utf8_unicode_ci . Теперь вы переходите к своему PhpMyAdmin (destination) и устанавливаете сортировку DB в utf8_unicode_ci (Operations> Collation).

Я использую это в linux:

 sed -i 's/utf8mb4/utf8/g' your_file.sql sed -i 's/utf8_unicode_ci/utf8_general_ci/g' your_file.sql sed -i 's/utf8_unicode_520_ci/utf8_general_ci/g' your_file.sql 

затем восстановите файл your_file.sql

 mysql -uyourdbuser -pyourdbpasswd yourdb < your_file.sql 

WordPress 4.2 представила поддержку кодировки символов «utf8mb4» по соображениям безопасности , но только поддержка MySQL 5.5.3 и выше. Способ, которым установщик (и updater) справляется с этим, заключается в том, что он проверяет вашу версию MySQL, и ваша firebase database будет обновлена ​​до utfmb4, только если она будет поддерживаться .

Это звучит здорово в теории, но проблема (как вы обнаружили) – это когда вы переносите базы данных с сервера MySQL, поддерживающего utf8mb4, на тот, который этого не делает. В то время как другой путь должен работать, это в основном односторонняя операция.

Как отметил Evster, у вас может быть успех с использованием функции «Экспорт» PHPMYAdmin. Используйте « Метод экспорта: пользовательский » и для « Системы баз данных или старого сервера MySQL, чтобы максимально использовать совместимость с выводами : « выпадающий список выберите « MYSQL 40 ».

Для экспорта командной строки с помощью mysqldump. Посмотрите на флаг:

 $ mysqldump --compatible=mysql4 

Примечание. Если в базе данных есть 4-байтовые символы, они будут повреждены.

Наконец, для тех, кто использует популярный плагин WP Migrate DB PRO, пользователь в этом streamе WordPress.org сообщает, что миграция всегда обрабатывается правильно, но я не смог найти что-либо официальное.

Плагин WP Migrate DB переводит базу данных из одной сортировки в другую, когда она перемещает 4.2 сайта между хостами с до или после 5.5.3 MySQL

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

В моем случае получается мой
на новом сервере выполнялся 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 .

В wp-config.php есть строка:

 define('DB_CHARSET', 'utf8mb4'); 

Если вы следуете инструкциям Markouver / Evster , не забудьте изменить эту строку на рабочем сервере, чтобы

 define('DB_CHARSET', 'utf8'); 

для исправления сломанных 4-байтных символов

После долгого исследования я нашел решение выше:

  1. Во-первых, вы меняете wp-config.php> Базу DB_CHARSET по умолчанию на “utf8”

  2. Перейдите на вкладку «Экспорт» для базы данных

  3. Нажмите переключатель «Пользовательский»

  4. Перейдите в раздел «Параметры, специфичные для формата», и измените раскрывающееся меню «Система баз данных или более старый сервер MySQL для максимальной совместимости вывода с:» от NONE до MYSQL40.

  5. Прокрутите страницу вниз и нажмите go

Тогда вы на.

Похоже, ваш хост не предоставляет MySQL-версию, которая способна запускать таблицы с помощью сортировки utf8mb4.

Таблицы WordPress были изменены на utf8mb4 с версией 4.2 (выпущенной 23 апреля 2015 г.) для поддержки Emojis, но для ее использования требуется MySQL 5.5.3. 5.5.3. с марта 2010 года, поэтому он обычно должен быть широко доступен. Cna вы проверяете, поддерживает ли ваш хостер эту версию?

Если нет, и обновление невозможно, вам, возможно, придется искать другого хостера для запуска последних версий WordPress (и вы всегда должны это делать по соображениям безопасности).

Поэтому я решил таким образом, от MySQL 5.6 до MySQL 5.5:

 $ mysqldump -u username -p --compatible=mysql4 database_name > database_name.sql $ sed -i 's/TYPE=InnoDB/ENGINE=InnoDB/g' database_name.sql 

(Необязательно) Создайте файл .sql.gz :

 $ gzip database_name.sql 

объяснение

 $ mysqldump -u username -p --compatible=mysql4 database_name > database_name.sql 

Как объясняется в этом ответе , это просто эквивалент этих параметров от phpMyAdmin: «Система баз данных или более старый сервер MySQL для максимальной совместимости вывода с:» выпадающим меню выберите «MYSQL 40» .

 $ sed -i 's/TYPE=InnoDB/ENGINE=InnoDB/g' database_name.sql 

Нам это нужно, чтобы решить эту проблему:

ERROR 1064 (42000) в строке 18: У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «TYPE = InnoDB» в строке 9

Я также столкнулся с этой проблемой. Решение, которое работало для меня, открывало локальную базу данных с Sequel Pro и обновляло кодировку и сортировку до utf8 / utf8_bin для каждой таблицы перед импортом.

Самый простой способ – экспортировать свою базу данных в .sql , открыть ее на Notepad ++ и «Искать и заменить» utf8mb4_unicode_ci на utf8_unicode_ci а также заменить utf8mb4 на utf8 . Также не забудьте изменить настройку базы данных на utf8_unicode_ci (Operations> Collation).

откройте файл sql на Notepad ++ и ctrl + H. Затем вы положите « utf8mb4 » на поиск и « utf8 » на замену. Тогда проблема будет исправлена.

  • Как получить имя текущей страницы в WordPress?
  • Получать пользовательские атрибуты товара в Woocommerce
  • Загрузка jQuery страниц Wordpress через ajax
  • Как добавить простой сценарий jQuery в WordPress?
  • TypeError: «undefined» не является функцией (оценка «$ (document)»)
  • Добавление полей настраиваемого изображения и других полей одновременно
  • Удаление тегов и в сообщениях WordPress
  • Selenium и wordpress: новый пост-тест
  • wordpress - настраивать значения настраиваемого поля для последующего их восстановления
  • jQuery Ajax возвращает ошибку 404, но правильный ответ
  • WP - Использовать файл в каталоге плагинов в качестве настраиваемого шаблона страницы?
  • Interesting Posts

    Как заставить sshfs работать в Debian? (Я получаю / dev / fuse: разрешение отклонено)

    Как изменить местоположение по умолчанию .vimrc в пределах ~ / .vim /?

    T-SQL выбирает запрос для удаления нечисловых символов

    Подключение 24 мониторов к одному ПК

    Как фильтровать Directory.EnumerateFiles с несколькими критериями?

    Как я могу увидеть доступные фильтры поиска Windows?

    Есть ли какая-то конкретная причина использования $ с переменной в jQuery

    Как удалить папку на C ++?

    Могу ли я скомпилировать все .cpp-файлы в src / to .o в obj /, затем ссылку на двоичный файл ./?

    Получите исходные файлы jar, прикрепленные к Eclipse для зависимых от Maven зависимостей

    Как я должен подготовить свои 32-разрядные программы Delphi для возможного 64-битного компилятора?

    Как вернуть строковое значение из функции Bash

    Как проверить равенство перечислений Swift со связанными значениями

    math.random, только генерируя 0?

    Видео в реальном времени с одного телефона Android на другой через Wi-Fi

    Давайте будем гением компьютера.