Как исправить ошибку Unknown collation: utf8mb4_0900_ai_ci

Collation это набор правил, которые описывают как сортировать и сравнивать строковые значения в БД. На разных версиях MySQL сервера этот параметр может отличаться. Поэтому при переносе сайта с одного сервера на другой вы можете получить ошибку:

Unknown collation: 'utf8mb4_0900_ai_ci'

Связано это с тем, что вы пытаетесь восстановить БД сделанную на сервере с более свежей версией MySQL на сервер с версией ниже. 

Чтобы избавиться от этой проблемы, вам нужно заменить строки в вашем дампе БД с

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

на

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Сделать это можно автозаменой если открыть дамп БД в текстовом редакторе (например Notepad++) или используя следующую Linux команду:

sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' DATABASE.sql  

где DATABASE.sql  имя вашего файла.

После этого пробуйте восстановить БД на новом сервере.

Категория