XAMPP1.7.1を入れたのですが、デフォルト状態だといつものように文字化けが発生します。
"MYSQL 文字化け"でググるとmy.cnfが腐るほど出てくるわけですが、今回文字化けを直そうとmy.cnfを探すも何処にも見あたらない。
いつのまにか設定ファイルがC:\xampp\mysql\bin\my.iniになってました。
いつから変更になったのかよくわかりませんが、とりあえずこれでWindows環境でmy.cnfが見つからないという質問は無くなりそうですね。
まあmy.cnf自体が無くなってるのでやっぱり質問が増えるかもしれませんが。
ちなみに正しい設定ファイル置き場はコマンドプロンプトから
C:\xampp\mysql\bin>mysql -?
で見ることができます。
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\xampp\mysql\my.ini C:\xampp\mysql\my.cnf
というふうになっていました。
前にあるのを優先して読むようなので、うっかり変なファイルがあったら動きがおかしくなったりします。
というわけでmy.iniを編集してみました。
とりあえず[mysqld]セクションに下記追加して文字化け解消。
character-set-server = utf8
collation-server = utf8_general_ci
init-connect=SET NAMES utf8
……と思ったが微妙にうまくいかない。
せっかく設定したcharacter-set-serverがMySQLを再起動するたびに効いたり効かなかったりするんだがなんだこれ。
さて、現在起動しているサービスから起動しているmysqlの状態を確認することができます。
C:\xampp\mysql\bin\mysqld.exe --defaults-file=c:\xampp\mysql\bin\my.cnf mysql
my.cnfなんて無いよ!
なんだよこの起動オプション。
インストール時にいつの間にやらこんな起動オプションが設定されてしまっていたみたいです。
これではせっかくのmy.iniが読み込まれてくれません。
仕方ないのでmy.iniをmy.cnfにコピペしたらあっさり文字化けが直った。
どうしてこうなった?
どこのページにもmy.cnfについては説明されているのですが・・・
私の環境でもmy.iniはあるのですがmy.cnfが見つからず・・・・
my.iniを設定しても起動するたびに「latin1」と表示され・・・どうしようか・・と悩んでいた所こちらのページにたどり着き、無事(あっさり)解決しました!!
結局、my.cnfを自分で作成しなくちゃいけないんですね?w
ありがとうございました。
なおりました!!!