У мене на локальному сервері WAMP є веб-сайт WordPress . Але коли я завантажую його базу даних на живий сервер, я отримую помилку
#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’
Будь-яка допомога буде вдячна!
У мене на локальному сервері WAMP є веб-сайт WordPress . Але коли я завантажую його базу даних на живий сервер, я отримую помилку
#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’
Будь-яка допомога буде вдячна!
Відповіді:
Ви можете вирішити це, знайшовши
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
у вашому .sql
файлі та замінюючи його
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'
, я замінив utf8mb4_unicode_520_ci
з utf8mb4_unicode_ci
і він працює, як і у відповідь Sabba в.
Я вважаю, що ця помилка викликана тим, що локальний сервер і сервер в реальному часі мають різні версії 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
Я щойно відкрив файл dump.sql у Блокноті ++ і натиснув CTRL + H, щоб знайти та замінити рядок " utf8mb4_0900_ai_ci " і замінив його на " utf8mb4_general_ci ". Джерело посилання https://www.freakyjolly.com/ разрешило-when- i- faced-1273- unknown- collation-utf8mb4_0900_ai_ci- error/
знайти та замінити:
utf8mb4_unicode_520_ci
з
utf8_general_ci
у цілому файлі 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 з нової 5.6 версії MySQL на більш стару, попередню версію 5.6 MySQL.
Щоб вирішити це, вам доведеться відредагувати файл експорту SQL та здійснити пошук та заміну, змінивши всі екземпляри 'utf8mb4_unicode_520_ci' на 'utf8mb4_unicode_ci'. Або виконайте наведені нижче дії, якщо у вас є PHPMyAdmin:
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql