AmazonRDSにS2JDBCで日本語登録−文字化け対策

ElasticBeanstalkとAmazonRDSで開発を進めているわけですが、次々と問題がありますね〜。。


DBに登録したら、文字化けです。
utf-8に設定してあるんだけどな、と思って下記コマンドで調べてみたら、


$ show variables like '%character%';

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/local/mysql-5.5/share/charsets/


何でサーバーだけ…?
とりあえず設定変更。



$ set character_set_server = utf8;

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 /usr/local/mysql-5.5/share/charsets/


これでとりあえずOK。



……とおもいきやまだ???になってる。
何で?と調べたら、接続も指定しなきゃいけないようで。

下記のようにcharacterEncoding=UTF-8を追記。


"jdbc:mysql://*******.us-east-1.rds.amazonaws.com:3306/db?zeroDateTimeBehavior=convertToNull"+"&characterEncoding=UTF-8"

無事文字化け解消です。