inohilog

/var/log/inohiro

MySQLで、テーブルを丸ごとCSVで入出力する

  • SQL でできるみたい

入力(import)

mysql> load data local infile "ファイル名" into table テーブル名 fields terminated by ',';

出力(export)

mysql> select * from テーブル名 into outfile "ファイル名" fields terminated by ',';
  • 各データを「"」でくくる場合
mysql> select * from テーブル名 into outfile "ファイル名" fields terminated by ',' enclosed by '"';

注意というかメモ

  • export時に「ファイル名」に任意の場所を書くとエラーになる場合がある
    • Errecode 13: 権限がない(Permission Denied)
    • Errecode 2 : 指定されたファイルや場所がない
  • 管理者権限でmysqlコマンドを実行しても、任意のパスで保存できない(ときがあった)
    • でもカレントディレクトリにそのまま保存(つまり、ファイル名が"hoge.csv"とか)は、可能
    • さて、どこに保存されたんだ -> 「/var/lib/mysql/データベース名/」(Ubuntu 10.04, MySQL 5.1)以下にある(cdするには管理者権限が必要)
  • 他のサイトを見ても、同じような現象に悩んでいる人はいなかった...