mysql の設定

文字コードUTF-8

mysql> show variables like 'char%';

                                                                                                                • +
Variable_name Value
                                                                                                                • +
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
                                                                                                                • +

8 rows in set (0.00 sec)

デフォルトだと latin1 がコードになっていて、rails上で日本語でインサートすると化ける。

/etc/mysql/my.cnf を編集。 ← apt-get でインストールした

[client]
(中略)
default-character-set=utf8

[mysqld]
(中略)
default-character-set=utf8
skip-character-set-client-handshake

mysql を再起動する。

sudo /etc/init.d/mysql restart

これでもう1回はじめのコマンドを叩くと…

mysql> show variables like 'char%';

                                                                                                                • +
Variable_name Value
                                                                                                                • +
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/share/mysql/charsets/
                                                                                                                • +

8 rows in set (0.00 sec)

となっているのでめでたし。

ただ、既にDBを作っていたらそれは変更されていないのでalter文で変更する。
作り直した方がキレイでいいと思う。