MySQL кодування utf8mb4: налаштування для підтримки emoji та Unicode

MySQL / MariaDB · 19.04.2026
MySQL кодування utf8mb4: налаштування для підтримки emoji та Unicode

Чому utf8 в MySQL не підтримує emoji

MySQL реалізував utf8 як 3-байтовий, що не покриває emoji (4 байти). utf8mb4 — справжній 4-байтовий UTF-8 з повною підтримкою Unicode та emoji.

Налаштування my.cnf

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4

Зміна кодування існуючої бази даних

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Налаштування в PHP (PDO)

$pdo = new PDO(
    'mysql:host=localhost;dbname=mydb;charset=utf8mb4',
    'user', 'password'
);
При оновленні з utf8 на utf8mb4 перевірте, що індекси VARCHAR не перевищують 767 байт.
← Назад до бази знань Поставити питання підтримці