Почему выдаёт SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION ‘utf8mb4_unicode_ci’ is not valid for CHARACTER SET ‘utf8mb3’?

Ошибка SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'utf8mb3' возникает при попытке создания таблицы или выполнения запроса в базе данных MySQL с использованием неподдерживаемой комбинации набора символов и кодировки.

В MySQL каждая таблица имеет определенный набор символов (character set) и кодировку (collation), которые определяют, какие символы могут быть хранены в таблице и как они будут сортироваться и сравниваться.

В данном случае, ошибка возникает из-за того, что вы пытаетесь использовать набор символов utf8mb4 и кодировку utf8mb4_unicode_ci в таблице или запросе, который использует набор символов utf8mb3.

Начиная с версии MySQL 5.5.3, utf8mb4 набор символов и соответствующая ему кодировка utf8mb4_unicode_ci были добавлены для поддержки хранения символов Unicode за пределами основного множества Unicode. Они поддерживают 4-байтные символы и предоставляют более широкий набор символов для хранения текстовой информации.

Однако, старые версии MySQL (до 5.5.3) не поддерживают набор символов utf8mb4. Вместо этого они поддерживают только набор символов utf8mb3, который может хранить только символы Unicode в основном множестве Unicode.

При попытке использовать utf8mb4 вместе с utf8mb3 в MySQL, возникает ошибка, так как utf8mb4 не является допустимой кодировкой для utf8mb3.

Чтобы исправить эту ошибку, вы можете выбрать одно из следующих решений:

1. Обновите версию MySQL до версии 5.5.3 или более новой, которая поддерживает набор символов utf8mb4. Это позволит вам использовать utf8mb4 вместе с utf8mb4_unicode_ci кодировкой без ошибок.

2. Если обновление MySQL не является возможным или желательным, вы можете изменить набор символов и кодировку таблицы (или запроса) на utf8mb3 и соответствующую ему кодировку (например, utf8mb3_general_ci). Это позволит вам сохранить совместимость с текущей версией MySQL, но ограничит использование 4-байтных символов Unicode.

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