2011年3月9日水曜日

RDSの"character_set_*"を"utf8"に(AWS)

スズキです。

ます、"AWS Management Console"で下記のように

"DB Parameter Group"を作成しておきます。


デフォルトの状態は下記となり、"character_set_*"は設定されていません。


パラメータの指定は"AWS Management Console"ではできないので、
こちらのツールをダウンロードして行います。

"DB Parameter Group"の確認は下記コマンドで行います。
(Windows環境で実施)

> rds-describe-db-parameter-groups ^
? -I IIIIIIII ^
? -S SSSSSSSS ^
? --region ap-northeast-1
--------
DBPARAMETERGROUP suz-lab mysql5.5 for suz-lab

パラメータの指定は下記コマンドで行います。
(Windows環境で実施)

> rds-modify-db-parameter-group suz-lab ^
? -I IIIIIIII ^
? -S SSSSSSSS ^
? --region ap-northeast-1 ^
? --parameters "name=character_set_client, value=utf8, method=immediate"

何故か、複数パラメータを指定したら最後のパラメータしか反映されなかったので、
下記を一つずつ指定しました。

character_set_client
character_set_connection
character_set_database
character_set_filesystem
character_set_results
character_set_server

そして再度、"AWS Management Console"で確認すると、
"character_set_*"が以下のように"utf8"になっていることが確認できます。


そして、この"DB Parameter Group"(suz-lab)を既存のRDSインスタンスに
下記のように割り当てます。
(念のため"Apply Immediately"にもチェックしておきます)


さらにRDSのリブートも行い、適当なサーバからRDSに入って
下記コマンドを実行すると、utf8に設定されていることが確認できます。

> show variables like "character_set_%";
character_set_client | utf8 |
character_set_connection | utf8 |
character_set_database | utf8 |
character_set_filesystem | utf8 |
character_set_results | utf8 |
character_set_server | utf8 |
character_set_system | utf8 |

ただし、mysqlコマンドを実行したサーバの"my.cnf"は、
下記のようになっています。

--------【my.cnf】--------
...
[mysql]
default-character-set=utf8
--------

IAMもやらないと…
--------

0 コメント: