2012-07-15(Sun)
MySQLでCSVファイルの読み書き
大前提として、CSVファイルを使うユーザーはFILE権限が必要だということをお忘れなきよう。
FILE権限があるか確認
FILE権限を与える
読み出し
この時、以下のようなエラーが出たらここを参考。ようはパーミッションの問題。なんでもありの/tmpに吐き出す。
書き込み
FILE権限があるか確認
mysql> show grants for current_user();
+------------------------------------------------------------------------------------------------------------+
| Grants for testuser@localhost |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD '*******' |
+-----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
FILE権限を与える
mysql> GRANT FILE ON *.* TO testuser@localhost;
読み出し
mysql> SELECT * FROM test_table INTO OUTFILE "/home/hoge/test_table.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
この時、以下のようなエラーが出たらここを参考。ようはパーミッションの問題。なんでもありの/tmpに吐き出す。
ERROR 1 (HY000): Can't create/write to file '/home/hoge/test_table.csv' (Errcode: 13)
mysql> SELECT * FROM test_table INTO OUTFILE "/tmp/test_table.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
Query OK, 17112 rows affected (0.03 sec)
書き込み
mysql>LOAD DATA INFILE "/var/lib/mysql/hoge_db/cc.csv" INTO TABLE user_table FIELDS TERMINATED BY ',' ENCLOSED BY '"';
- 関連記事
スポンサーサイト