EC2でMySQLを使う時の注意点

RailsでDBが文字化けするからMySQLを調べてみたら
案の定エンコーディングがlatin1になってた。

default-character-set=utf8を追記して再起動するも立ち上がらない。
そんな命令はないというので調べると、命令が変わった模様。
最近のMySQLでは

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

と書く。 http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf8-in-my-cnf

で、起動するも、なぜか起動できない。

InnoDB: Fatal error: cannot allocate memory for the buffer pool

といっていて、InnoDBがエラーを起こしている。
調べると、EC2のマイクロインスタンスではMySQLが勝手に落ちたりするらしい。なんと!

スワップを設定しろとのこと。
http://stackoverflow.com/questions/10284532/amazon-ec2-mysql-aborting-to-start-because-innodb-mmap-x-bytes-failed-err

やり方は以下。
http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile

/etc/fstab に以下を追記

/swapfile swap swap defaults 0 0

で、再起動したら治った。