AWS RDSのMySQLの文字コードをutf-8に変更
AWS RDSのMySQLの文字コードをutf-8に変更
発生エラー
最近EC2にRailsアプリケーションをデプロイしてみたんですが、文字コードがlatin1なんですね、デフォルトで。(日本語だとエラー発生するんで何事かと思ったら文字コードがutf-8じゃなかった)
そんなわけで文字コードを変更します。
コマンド
EC2のインスタンスからアクセスする前提でいきます。
mysql -h end-point -P 3306 -u database-user -p database-name
> show variables like 'char%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /rdsdbbin/mysql-5.7.22.R4/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.01 sec)
デフォルトの文字コードをutf-8にします。
MySQL [database-name]> ALTER DATABASE database-name default character set utf8;
Query OK, 1 row affected (0.01 sec)
すでにテーブルがいくつか登録済であれば、テーブルに対してもutf-8になるように変更してあげる必要があります。
> ALTER TABLE table_name CONVERT TO CHARACTER SET UTF8;