note63

事情

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

参考

http://gomineet.hateblo.jp/entry/2013/08/18/185422 "xampp_mysql"