Целью было, чтобы сервер MySql работал с кодировкой utf8.

По-умолчанию в Ubuntu MySql устанавливается с кодировкой latin1.

Это можно посмотреть:

mysql> show variables like ‘char%’;

в результате получим вот такой вывод:

character_set_client latin1

character_set_connection latin1

character_set_database latin1

character_set_filesystem binary

character_set_results latin1

character_set_server latin1

character_set_system utf8

character_sets_dir /usr/share/mysql/charsets/

В связи с этим, даже используя при работе с сервером команду

set names utf8;

и используя при создании таблиц

…DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

мы не добьемся полной поддержки кодировки utf8:

character_set_client utf8

character_set_connection utf8

character_set_database utf8

character_set_filesystem binary

character_set_results utf8

character_set_server latin1 <———————————————————————

character_set_system utf8

character_sets_dir /usr/share/mysql/charsets/

Кодировка по-умолчанию все равно останется latin1, что не удобно.

Чтобы сервер сразу загружался с нужной нам кодировкой utf8, необходимо в файл my.cnf добавить несколько строк:

nano -w /etc/mysql/my.cnf

в секцию [mysqld] добавим следующий код:

skip-character-set-client-handshake

default-character-set=utf8

init-connect=’SET NAMES utf8′

default-collation=utf8_general_ci

Перезагрузим сервер MySql:

/etc/init.d/mysql restart

После этого список переменных будет выглядеть так:

character_set_client utf8

character_set_connection utf8

character_set_database utf8

character_set_filesystem binary

character_set_results utf8

character_set_server utf8

character_set_system utf8

character_sets_dir /usr/share/mysql/charsets/

Теперь корректно отображается.