今回は、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

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら