• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Проблема при импорте БД #1273 - Unknown collation: 'utf8mb4_unicode_ci'

Image CMS
#1
Кто сталкивался с такой проблемой?


SQL-запрос:

CREATE TABLE `wp_commentmeta` (

`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT '0',
`meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( `comment_id` ) ,
KEY `meta_key` ( `meta_key` ( 191 ) )
) ENGINE = INNODB AUTO_INCREMENT =21 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

Ответ MySQL:

#1273 - Unknown collation: 'utf8mb4_unicode_ci'
 
#3
Вопрос решился простым способом.

Открыл БД в Нодпад++ и спомощью поиска заменил все 'utf8mb4_unicode_ci' на "utf8_general_ci", также "utf8mb4" на "utf8". После этого база без проблем импортировалась.

Также если уже на хостинге БД с кодировкой 'utf8mb4_unicode_ci', то бекап нужно делать с максимальной совместимостью MYSQL40(экспорт-"Обычный - отображать все возможные настройки"-Формат-"Максимальная совместимость с системой базы данных, или устаревшей версией MySQL:")
 
#4
Огромное спасибо , облазил интернет и вот он нормальный и четкий ответ.Все работает.Спасибо.
 

nikko

Новичок
#5
architectors, вы гений!

Хочу написать о своём случае, вдруг потом пригодится кому.
Итак, переносил Wordpress 4.2.3 с одного хостинга на другом. На первом все работало отлично, на втором сначала столкнулся с тем, что была ошибка
#1273 - Unknown collation: 'utf8mb4_unicode_ci'
Ну я погуглил, кто-то советовал экспортировать базу на первом хостинге в режиме совместимости MYSQL40. Да, так ошибки не было и все импортировалось отлично, сайт работал нормально, НО была странная проблема: страницы и записи не редактировались. Он писал, что страница обновлена, но изменения не вносились. Также я не мог создать новую запись/страницу, писало "Вам не разрешено редактировать эту запись" ("You are not allowed to edit this post").

Долго думал в чем проблема, поддержка хостинга не смогла помочь. Потом смотрю в базу на новом хостинге, а там кодировка таблиц windows_1251, а не utf8mb4_unicode_ci как на старом. Тут до меня дошло, что режим совместимости оказался не таким полезным. Нашел ваше решение, сделал замену через notepad++, импортировал - всё отлично!
 

no421

Новичок
#7
Вопрос решился простым способом.

Открыл БД в Нодпад++ и спомощью поиска заменил все 'utf8mb4_unicode_ci' на "utf8_general_ci", также "utf8mb4" на "utf8". После этого база без проблем импортировалась.

Также если уже на хостинге БД с кодировкой 'utf8mb4_unicode_ci', то бекап нужно делать с максимальной совместимостью MYSQL40(экспорт-"Обычный - отображать все возможные настройки"-Формат-"Максимальная совместимость с системой базы данных, или устаревшей версией MySQL:")
база импортировалась нормально, но на сайте вместо слов были знаки вопроса "?????? ???? ??????? ???", как оказалось нужно было поменять кодировку в файле wp-config.php с utf8mb4 на utf8
 

root

Новичок
#10
Вопрос решился простым способом.

Открыл БД в Нодпад++ и спомощью поиска заменил все 'utf8mb4_unicode_ci' на "utf8_general_ci", также "utf8mb4" на "utf8". После этого база без проблем импортировалась.
спасибо, замена помогла
только вместо поиска в блокноте, заюзал 2 команды сед:
Код:
sed -i 's/utf8mb4_unicode_ci/utf8_general_ci/' path/to/my/base

sed -i 's/utf8mb4/utf8/' path/to/my/base
 

korino

Новичок
#11
День добрый. Помогите пожалуйста решить проблему.
На хостинге текущий сайт требовалось заменить с локалки. Он по сути идентичный, но есть нюансы требующие замену.
Хостинг нджинкс , локальный -ксамп (мариядб вроде)

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

У текущего, требующего замены - MyISAM utf8mb4_unicode_520_c

С какими параметрами тогда необходимо сделать экспорт с локалки и какие ещё заменять в блокноте?


Делал импорт с предварительной заменой utf8mb4_unicode_ci на utf8mb4_unicode_520_ci
импортирвоалось без проблем. НО!
Сайта по сути нет.... ни фона, ни картинок, кое-где текст и всё...
Так-же в сипанели, разделе отображения баз, показывает текущию с 0.00мб Тогда как в phpmyadmin она весит 9.8МБ!
 
Последнее редактирование:

korino

Новичок
#12
значится эта правленая база как InnoDB. Ладно,экспортировал с поддержкой MYSQL40, импортировал. Результат на экране тот же, да ещё и кракозябры вместо русского.
В phpmyadmin на уже импортируемой БД вижу следующее - MyISAM latin1_swedish_ci
мне же нужно если я правильно понимаю, добиться MyISAM utf8mb4_unicode_520_ci

Пробовал экспортировать ту, что показываед шведский, дабы заменить через блокнот. да вот нет там его!
 

korino

Новичок
#13
ПРоблема с отображением картттинок и фона решилась. Надо было править2 строчки в бд.
Но вот кракозябры остались((
 

Tommy

Форумчанин
#16
Пишите из какой версии, в какую версию sql вы делали экспорт/импорт. Тогда ваша информация действительно может оказаться кому-то полезной.
В моем случае из
Тип сервера: MySQL
Версия сервера: 5.6.21 - MySQL Community Server (GPL)
Версия протокола: 10
Кодировка сервера: UTF-8 Unicode (utf8)

на сервер
Сервер: mysql2.ХХХХХХ.ru via TCP/IP
Тип сервера: MariaDB
Версия сервера: 5.5.52-MariaDB - MariaDB Server
Версия протокола: 10
Кодировка сервера: UTF-8 Unicode (utf8)

ПОМОГЛО:
от ошибки Unknown collation: 'utf8mb4_unicode_520_ci'
1) Экспорт с максимальной совместимостью MYSQL40.
от ошибки #1064 - You have an error in your SQL syntax; check the manual ......... TYPE=InnoDB
2) Замена нотепадом TYPE=InnoDB на ENGINE=InnoDB

Вообще комбинаций версий MQSQL очень много, поэтому единого рецепта нет. Надо разбираться в каждом конкретном случае. Но
Проблема была решена путём пересоздания сайта уже на хостинге.(
- это просто жесть и на мой взгляд печальный и не приемлемый вариант.