xamppの設定とかsqlとか
授業でXAMPPを使う必要があり、最初は学校のWindowsでやってたけどやっぱり嫌だったからMacのXAMPPに切り替えた。 そのときにやったことをメモ。
XAMPPのMysqlを日本語対応させる
/Applications/XAMPP/etc以下にあるmy.cnfを編集するわけだけど、大事なファイルっぽいのでバックアップをとったほうがいいかも。
$ sudo cp my.cnf _my.cnf
my.cnfに以下を追記。
[client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_unicode_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8
一旦XAMPP controllからmysqlを再起動。 これで日本語に対応してるはず。 確認するために以下のコマンドを入力。
mysql > status
するとmysqlサーバの状態が表示される。 文字コードの部分が以下のようになっていればおk。
Server characterset: utf8 DB characterset: utf8 Client characterset: utf8 Conn. characterset: utf8
csvからデータベースにデータを読み込む
いちいちinsertするのが限りなくだるいのでcsvから読み込む。 コマンドは以下のとおり
# ~/test.csvをtestテーブルに読み込む mysql > load data local infile '~/test.csv' into table test fields > terminated by ',' # カンマ区切りでfieldの値が区切られていることを明示 > enclosed by '"' # 文字列がダブルクォートで囲まれていないことを明示 > lines terminated by '\n'; # ひとつのデータの終端が\nであることを明示
Office for MacのExcelさんはShift-JISで保存するというアレなのでcsvを開くと文末が^M
ってなってて「???」ってなって、挙句にvimでそれを消す作業をするはめになったので気をつけよう。
追記(2013/11/09)
XAMPP1.8.3からはMySQLが5.6系列に変更されており設定が微妙に変わってた。
mysqldの設定を以下のようにする。
なんかdefault-character-setが設定項目として消えてるっぽくてそれを書くとMySQL起動時にエラーを吐かれる。
[mysqld] skip-character-set-client-handshake character-set-server = utf8
参考
- windowsのXAMPPでCSVをコマンドプロンプトでインポートしたとき文字化けしてしまう時の対処法
- Mac版XamppのMySqlを日本語で文字化けしないように
- XAMPPのPHP,MySQLの文字コードをUTF-8に設定
http://gomineet.hateblo.jp/entry/2013/08/18/185422 "xampp_mysql"