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 を起動した後、ターミナルから

/Applications/MAMP/Library/bin/mysql --verbose --help

と入力すると、どこの設定ファイルを読むかが

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 サーバが起動しない時は確認してみましょう。