Содержание

Кодировки и mysql или как перевести сервер/базу в нужную кодировку

Кодировка сервера

По умолчанию, mysql работает в latin1. Исправить это:

sudo leafpad /etc/mysql/my.cnf

Там:

default-character-set=utf8
character_set_server=utf8
collation_server=utf8_unicode_ci

Для mysql8:

[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4

После чего перегружаем mysql:

sudo service mysql stop 
sudo service mysql start

Кодировка базы

На базе выполняем запрос:

SHOW VARIABLES LIKE '%char%';

#или так
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

Он может показать, что база, например, в Latin1. Надо ее перевести в utf8. Через pma - Операции - сравнения. Там выбираем требуемую кодировку… и профит.