MAMP の使用ではまった事
Apache + MySQL + PHP の環境を Mac で手軽に構築できるものに MAMP という物があるのですが、MySQL でデフォルトのキャラセットを utf8 に設定する方法ではまったのでメモ。
使用した MAMP のバージョンは 1.9.5
結論からいうと、
/Applications/MAMP/conf/ に MySQL の設定ファイル my.cnf を作成して、そこに
[mysqld]
skip-character-set-client-handshake
character-set-server = utf8[mysql]
default-character-set=utf8
と書けば OK でした。
で、何が悪かったのかというと。。。。
はまった原因1 : 設定ファイルのパスが違う。
参考したサイトはことごとく /Applications/MAMP/db/mysql/ に置くと書いてあったが、いつからか /Applications/MAMP/conf/ に変更された模様。
MAMP を起動した後、ターミナルから
と入力すると、どこの設定ファイルを読むかが
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf
という感じで、表示される。
設定ファイルが読み込まれていないと感じたら、一度確認してみよう。
はまった原因2 :
web を検索すると my.cnf には
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
と書け。みたいな記述があるのでが、いつの時代からか mysqld のオプションから default-character-set というパラメータは削除された模様で、これを書いてしまうと mysqlサーバーが起動しなくなります。
MAMP の場合、エラーログは /Applications/MAMP/logs/mysql_error_log.err に出力されますので、mysql サーバが起動しない時は確認してみましょう。