my opinion is my own

MySQLテーブル内のデータをファイル抽出する

ファイル出力方法は大きく分けて2種類ある

①リダイレクトによる出力

echo 'SELECT * FROM t1 ' | mysql -u myuser -p<パスワード> mydb > /tmp/t1.dmp

②SELECT INTO OUTFILE を使用する

SELECT * FROM t1 INTO OUTFILE '/var/lib/mysql-files/t1.dmp' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

ファイルの書き込み先はsecure_file_privで許可されたところを指定する。 上記ディレクトリ以外を指定すると下記エラーが発生する。

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
mysql> SELECT @@secure_file_priv;
+-----------------------+
| @@secure_file_priv    |
+-----------------------+
| /var/lib/mysql-files/ |
+-----------------------+
1 row in set (0.00 sec)

参考

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.9.1 SELECT … INTO 構文 https://dev.mysql.com/doc/refman/5.6/ja/select-into.html

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
---

関連しているかもしれない記事


#MySQL