今回は、RDSのcharcter_setをutf8に変更してみます。
まず初めに"AWS Management Console"で、下記のように"DB Parameter Group"を作成しておきます。
尚、デフォルトの状態は下記となり、"character_set_*"は設定されていません。
パラメータの指定は”AWS Management Console”ではできないため、
Amazon RDS Command Line Toolkitをダウンロードして行います。
次に、”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