вівторок, 21 лютого 2017 р.

Кириллица в MySQL

Бывает, что при добавлении кириллического текста в таблицу MySQL отображаются кракозябры.

Чтобы посмотреть кодировки по базе данных нужно выбрать базу данных, посмотреть какие кодировки установлены и выполнить одну из следующих команд:
MariaDB [(none)]> use test2;
Database changed

MariaDB [test2]> show variables like 'char%';
+--------------------------+----------------------------
| Variable_name                  | Value                  
+--------------------------+----------------------------
| character_set_client          | utf8                                   
| character_set_connection | utf8                                  
| character_set_database    | latin1                            
| character_set_filesystem   | binary                        
| character_set_results        | utf8                                  
| character_set_server         | latin1                                
| character_set_system       | utf8                                   
| character_sets_dir             | /usr/share/mysql/charsets/

Если нужно поменять значение в какой-то строке, выполните одну из команд или все по очереди. Мне помогло.

SET NAMES UTF8;
SET CHARACTER SET UTF8;
SET collation_connection='utf8_general_ci';
SET collation_database='utf8_general_ci';
SET collation_server='utf8_general_ci';
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_database='utf8';
SET character_set_results='utf8';
SET character_set_server='utf8';

Также необходимо проверить настройки  в /etc/my.cnf

в секции клиента:

[client]

default-character-set=utf8

в секции демона:

[mysqld1]
skip-character-set-client-handshake
default-character-set=utf8
init-connect='SET NAMES utf8'
default-collation=utf8_general_ci


Или в файле конфигурации соответствующей базы данных поменять значения:
vi  /var/lib/mysql/test2/db.opt

default-character-set=utf8
default-collation=utf8_general_ci


Немає коментарів:

Дописати коментар