2015-09-05 3 views
0

Я пытаюсь использовать различные конфигурации, чтобы заставить кодировку и сопоставления к utf8. Однако все, что я пробовал, потерпело неудачу, и некоторые настройки отражают латинскую кодировку или сортировку.Частичная конфигурация совпадений и кодировок utf8 на MySQL 5.6

Это MySQL 5.6 на CentOS 6 из репозитория IUS.

Мой конфиг на /usr/share/mysql/my.cnf

# The MySQL server 
[mysqld] 
port   = 3306 
socket   = /var/lib/mysql/mysql.sock 
skip-external-locking 
key_buffer_size = 16K 
max_allowed_packet = 1M 
table_open_cache = 4 
sort_buffer_size = 64K 
read_buffer_size = 256K 
read_rnd_buffer_size = 256K 
net_buffer_length = 2K 
thread_stack = 128K 
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake 

Настройки через Хайди

enter image description here

От клиента MySQL

mysql> 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/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.01 sec) 

mysql> show variables like 'coll%'; 
+----------------------+-------------------+ 
| Variable_name  | Value    | 
+----------------------+-------------------+ 
| collation_connection | utf8_general_ci | 
| collation_database | latin1_swedish_ci | 
| collation_server  | latin1_swedish_ci | 
+----------------------+-------------------+ 
3 rows in set (0.00 sec) 

я не сделал есть любые проблемы в 5.1, хотя.

Update # 1

Я поставил default-character-set = utf8, в client, mysqld и mysql секции my.cnf и перезагрузил службу MySQL. Все-таки то же самое, сочетание латинского и utf8.

mysql> 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/ | 
+--------------------------+----------------------------+ 
8 rows in set (0.00 sec) 

mysql> show variables like 'coll%'; 
+----------------------+-------------------+ 
| Variable_name  | Value    | 
+----------------------+-------------------+ 
| collation_connection | utf8_general_ci | 
| collation_database | latin1_swedish_ci | 
| collation_server  | latin1_swedish_ci | 
+----------------------+-------------------+ 
3 rows in set (0.00 sec) 

Update # 2

Мои вопросы, связанные с миграции базы данных с помощью мастера миграции через MySQL Workbench. В полученной базе данных есть сортировки и кодировки, которые я не хочу. Если я запускаю созданный скрипт через Heidi, я получаю тот же результат, что и результат миграции.

ответ

0

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

ie. при создании базы данных и добавлении столбцов, где необходимо указать набор и набор символов, utf8_unicode_ci, utf8 ...

0

init-connect игнорируется, когда вы подключаетесь как root (или другим пользователем SUPER).

В ваших my.cnf (my.ini) файлов, добавьте это под [mysql] или [client]:

default-character-set = utf8 

(я не знаю, если Хайди будет переопределить - выяснить, как это делает «подключить».)

Addenda

character_set_database и _SERVER не обязательно является проблемой. _client, connection и _results используются, чтобы сказать, как кодируются байты в клиенте. Вы говорите, что содержит таблица, добавив CHARACTER SET utf8 в CREATE TABLE.

Помимо настроек, которые вы показываете им, какие симптомы у вас есть из-за испорченного текста? Сделайте это с некоторой колонкой с текстом не на английском языке:

SELECT col, HEX(col) FROM ... WHERE ... 

, чтобы показать, что на самом деле хранится.

+0

см. обновление, те же результаты ... – TekiusFanatikus

+0

см. Addenda .... –

+0

Я использую Мастер миграции Workbench и он не выполняет сортировки и кодировки, которые мне не нужны. Когда я выводю скрипт, он не показывает жестко закодированные коллаборации/кодировки. Если я запустил созданные скрипты в Heidi, я все равно получаю стандартную сортировку latin_swedish_ci для таблиц. – TekiusFanatikus

Смежные вопросы