コマンド
以下のコマンドで、指定したテーブルのデータをCSVファイルに書きだす。
1 2 3 4 |
SELECT * FROM テーブル名 INTO OUTFILE "ファイル名.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; |
エラー対応
下記のようなエラーが出る場合。
1 2 |
mysql> SELECT * FROM data_table INTO OUTFILE "data.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement |
グローバル変数を確認する。
1 |
SELECT @@GLOBAL.secure_file_priv; |
1 2 3 4 5 6 7 |
mysql> SELECT @@GLOBAL.secure_file_priv; +---------------------------+ | @@GLOBAL.secure_file_priv | +---------------------------+ | /var/lib/mysql-files/ | +---------------------------+ 1 row in set (0.00 sec) |
この場合、表示されたディレクトリーにのみCSVファイルを書き込むことが可能なので、以下のように指定する。
1 2 3 4 |
SELECT * FROM テーブル名 INTO OUTFILE "/var/lib/mysql-files/data.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; |
結果のファイルdata.csvは/var/lib/mysql-filesディレクトリー下に保存される。