mysql5.1で文字コードをutf8に設定する方法
失礼します。
windows8.1でmysql5.1を使用しています。
現在、mysqlでutf8の設定ができずに困っています。
症状としては、
・データベース作成時点でutf8を指定、set names utf8を実行した状態で
insert文で日本語を含むデータを入れようとしたところ、日本語のデータを追加しようとしたカラムのみエラーが出る。
・chcp 65001を指定した状態でmysqlを起動(?実行?)してinsert文でデータを追加しようとしたところ、
そもそも日本語入力ができない。
・mysqlを起動(?実行?)しない状態でchcpコマンドを実行すると932(たぶんsjis)と表示される。
・my.cnfが存在しない
以上の4点となります。
3つ目の症状より、デフォルトの文字コードがsjisになっているのではないかと考えているので、my.cnfの設定を変更しようと思ったのですが、cドライブからmy.cnfを検索しても出てこないのでおそらく存在しません。
調べてみたところどうやら自分で作ればいいらしいのですが、mysql5.1のサンプルコードが見つからなかったのもあり、どこに作ればいいのか、記述はどうしたらいいのかが分からず困っています。
utf8の設定をすることができないので、この状況を打開するためにまずmy.cnfを作るところから始めるとは思うのですが、どこにどう作ったらよいでしょうか?
追記:nyaru_kさんの指示通りにmy.iniを編集し、新たにデータベースとテーブルを作りました。
まずは適応されているかの確認です。
mysql> show variables like 'char%';
+--------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------------+
8 rows in set (0.00 sec)
続いてはinsert文で日本語のデータを入れようとした結果です。
mysql> insert into goods values
-> (1,'りんご',200),(2,'みかん',100);
ERROR 1366 (HY000): Incorrect string value: '\x82\xE8\x82\xF1\x82\xB2' for column 'name' at row 1
my.iniを編集する前も全く同じエラーになっていました。
原因が分かりますでしょうか?
追記2:
phpでinsert文も試しましたが、utf8をset namesで指定すると文字化け、sjisだと日本語で表示されました。
my.iniはMySQL Server 5.1の直下にあります。
使用しているエディタはSublime Textで、上書き保存をするときに「エンコードを指定して上書き保存」でUTF-8を選択して保存しています。