White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

mysqlでutf-8のDBを作る

コマンドからだと結構面倒じゃないっすか?

  • mysql-serverとか入れる。rootパスワードも設定する
  • /etc/mysql/だかにあるmy.cnfに以下の行を付け足す。DBを作る前に書いておかないと後でやり直す羽目になる

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

  • $ mysql -u root -pしてrootのパスワード入れる
  1. > create database hogehogeデータベースを作る
  2. > grant all privileges on *.* to 'username'@'localhost' identified by 'password' with grant option;とかやってユーザ、権限を追加*1
  3. > set names utf8;を実行する
  4. > show variables like "char%";を実行する。 charsetがutf-8になってればいいと思う。

他にDBを作るなら1番から繰り返し実行する。sqlalchemyでもこれだけ必要みたい。activerecordなら必要ないんだっけ?どちらにせよ面倒だしセキュリティホール起こしそうだよね。

追記

まだだめっぽい

追記2

defaultなんちゃらとかskipなんちゃらを[mysqld]の直後じゃなくて[mysqldump]のちょっと上辺りに書いてたんだけど、それのせいで化けてたっぽい・・[mysqld]の直後に置いたら化けなくなった・・

*1:all privileges与えるのもどうかと思うが