これ、たぶん既にすげー数の人がハマった問題だと思うんです、そしてQiita上にも大量に情報があると思いますが、念のため、メモ。
my.conf(my.ini)の設定をいじる
MySQLの入れ方(Macports/Homebrew/純正)によってこやつの場所は結構かわるかもしれません。 んで、このmy.confに次の項目を追加してください。(自分は/usr/local/mysql/に居ました)my.conf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysqld]
character-set-server=utf8
#if you use mysql<5.5 use this
#default-character-set=utf8
ポイントは、mysqldだけdefault-character-setではない
てことです。
character-set-server=utf8
です。気をつけましょう。
さて、これで一度mysql.serverをrestartしていただきましたら、mysqlを立ち上げて
mysql>status
と打ってみましょう。
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
ってなれいればおk!
さて、ここで問題。
あらかじめ作っておいたDBに以下のSQLを実行したらどうなりましょう。
INSERT INTO table1
set title = "おっぱい"
,created = now();
Incorrect String ...
とでました。確かにおっぱいは不適切かもしれませんが...
ちょっとまてよcharsetがlatin1(デフォルト)の状態で作ったDBだから日本語だめなんじゃ....
とおもってもう一度DBをDropしたあと、もういちどつくりなおしたらとおりました。
御気をつけて!