2013-06-06 4 views
6

Как настроить Amazon RDS для правильного хранения китайских символов? В настоящее время текст становится «????».Настройка Amazon RDS mysql для хранения китайских символов

Я уже создал новую группу параметров и установил набор символов как utf8 и изменил экземпляр. Ниже представлена ​​подробная информация:

mysql> show variables like '%char%'; 
+--------------------------+-------------------------------------------+ 
| 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.5.27.R1/share/charsets/ | 
+--------------------------+-------------------------------------------+ 


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

ответ

13

После ответа @Peter Venderberghe, чтобы настроить RDS, я все еще не могу позволить ему правильно хранить китайские символы.

Наконец, я использовал MySQL командной строки для подключения к RDS (вы можете использовать MySQL workbench или другой инструмент клиента вам нравится)

MySQL -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME

примечание:

1). не забудьте добавить current ip в группу безопасности, входящую в RDS, перед подключением к RDS

2). вы можете получить соответствующую информацию (группы безопасности, USERNAME ... и т. д.) на RDS console кроме PASSWORD. PASSWORD должен быть тем, который вы создали для экземпляра. HOSTNAMEORIP - «Конечная точка» (без порта) на консоли.

3). между -p и PASSWORD нет пробела. это точно -pPASSWORD.

После подключения к MySQL с помощью инструмента вы комфортно, вы должны дать ему некоторые команды:

# set character set and collation for database 
mysql> alter database DATABASENAME CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
-------- 
# set character set and collation for new records in a table 
mysql> ALTER TABLE TABLENAME CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
# set character set and collation for existing records in a table 
mysql> ALTER TABLE TABLENAME CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

вы можете написать скрипт, чтобы выполнить эту задачу, если у вас есть много таблиц. Однако это не входит в этот ответ.

После настройки, как указано выше, вы должны иметь возможность качать с иероглифами!

2

Убедитесь, что вы используете набор символов UTF-8.

Самый простой способ установить кодировок постоянно необходимо обновить ваш клиент my.cnf со следующим:

[client] 
default-character-set=utf8 

Подробная информация о подключении кодировки вы можете найти здесь: http://dev.mysql.com/doc/refman/5.5/en/charset-connection.html

При использовании функции API MySQL (PHP клиент, например), вы можете установить кодировку соединения, отправив запрос

SET NAMES utf8 

вы можете настроить Amazon RDS использовать символ Utf-8, заданный в следующем блоге: http://matthew.mceachen.us/blog/howto-configure-an-amazon-rds-instance-to-use-utf-8-925.html

Надеюсь, это поможет.

+0

См. Мое обновление. Все еще не получилось работать после использования utf8. следует что-то упустить ... –

+0

Как вы просматриваете сохраненные данные? С помощью инструмента GUI или с помощью браузера? Перед вводом данных убедитесь, что вы выполняете «Установить имена UTF8;» также вы можете направить этот пост также http://mandarin.about.com/od/characters/ss/display_chars.htm –

5

Если вы используете RDS, вы можете настроить группу параметров для своего экземпляра mysql.

  1. Создать новый параметр Группа
  2. Modify экземпляр дб с новой группой параметров
  3. перезагружать ваш экземпляр БД

Готово! Это должно быть довольно просто. Когда увидишь, ты увидишь.

+0

Это, безусловно, самый простой способ сделать это. И, на мой взгляд, правильный путь. – Anton

+1

Я подтверждаю, что этот метод является самым простым. ОП не представила подробностей. То, что я изменил, было «character_set_ *» и «collation_ *». существует около 8 настроек, я изменил их все на «utf8» и «utf8_unicode_ci», – volatilevar

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