2016-03-11 4 views
3

Итак, моя цель - установить все наборы символов и сопоставления на utf8 и utf8_unicode_ci.Установите переменную MySQL server collation_connection на utf8_unicode_ci на AWS RDS

Im использует AWS RDS для размещения сервера MySQL.

Ive установил collation_connection variable в utf8_unicode_ci в группе параметров для RDS. This is how I set the variable in the parameter group .

Ive затем перезагрузил мой RDS и, перейдя на консоль MySQL, он отображает следующие значения для переменных.

mysql> show variables like "%character%";show variables like "%collation%"; 
+--------------------------+-------------------------------------------+ 
| Variable_name   | Value          | 
+--------------------------+-------------------------------------------+ 
| 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  | /rdsdbbin/mysql-5.6.22.R1/share/charsets/ | 
+--------------------------+-------------------------------------------+ 
8 rows in set (0.01 sec) 

+----------------------+-----------------+ 
| Variable_name  | Value   | 
+----------------------+-----------------+ 
| collation_connection | utf8_general_ci | 
| collation_database | utf8_unicode_ci | 
| collation_server  | utf8_unicode_ci | 
+----------------------+-----------------+ 

Я не уверен, почему collation_connection установлен как utf8_general_ci

+0

Изменение таблицы в целом устраняет проблему, с которой я столкнулся (относительно моего обновления не работает - http://www.web-technology-experts-notes.in/2014/07/illegal-mix- of-collations-utf8-unicode-ci-implicit-and-utf8-general-ci-implicit.html, но все же я не знаю, почему collation_ соединение не меняется. –

+0

Вы в конечном итоге решили эту проблему? Поскольку я тоже сталкиваюсь с группой параметров Amazon RDS. – Iqbal

+0

nope, все еще интересуется потенциальным решением –

ответ

-2

Если у вас есть какие-либо существующие таблицы с различными CHARACTER SET или COLLATION, они нуждаются в преобразовании; см. ALTER TABLE ... CONVERT TO ....

Если вы не используете код utf8, это необходимо изменить. Детали очень специфичны для языка (Java vs PHP vs ...).

И, если вы делаете HTML страницы, они должны начать с

<meta charset=UTF-8> 

До тех пор, как вы проходите через это упражнение, вы должны пройти весь путь, так что вы можете справиться со всеми китайцами и Эможи: utf8mb4 и utf8mb4_unicode_520_ci.

+0

Thx, но знаете ли вы, почему collation_connection все еще установлен как utf8_general_ci? (даже после того, как я установил переменную collation_connection в utf8_unicode_ci в группе параметров). –

+0

Извините, я не знаком с «группой параметров»; Я даже не знаю, что это за продукт. Есть слишком много сторонних пакетов, добавляющих слишком мало значения для MySQL

0

Переменные, которые вы видите здесь переменные текущей сессии клиента:

+----------------------+-----------------+ 
| Variable_name  | Value   | 
+----------------------+-----------------+ 
| collation_connection | utf8_general_ci | 
| collation_database | utf8_unicode_ci | 
| collation_server  | utf8_unicode_ci | 
+----------------------+-----------------+ 

Итак, вам нужно выполнить следующие команды, когда вы инициировать соединение, на клиентском компьютере, с которого вы подключаетесь:

SET collation_connection = 'utf8_unicode_ci';