MySQL csv形式でエクスポートする方法 | クズリーマンのカス備忘録

MySQL csv形式でエクスポートする方法

animal_dolphin-iruka-mysql-logo MySQL
スポンサーリンク

 

方法1. mysqldump を使う

csv形式で出力する例

$ mysqldump -u{ユーザー名} -p --tab=/tmp --fields-terminated-by=, {DB名} {テーブル名(省略可能)}
Enter password:パスワードを入力

qiita – MySQLのデータをcsv,tsv形式でダンプする

これが王道やもしれぬ。

 

–tab オプション って?

 

--tab=dir_name オプションを付けて、mysqldump を呼び出した場合、それは dir_name を出力ディレクトリとして使用し、

MySQL公式

保存先のディレクトリらしー。

 

テーブルごとに 2 つのファイルを使用して、そのディレクトリに個別にテーブルをダンプします。テーブル名はこれらのファイルのベース名です。t1 という名前のテーブルの場合、ファイルには t1.sql および t1.txt という名前が付けられます。.sql ファイルにはテーブルの CREATE TABLE ステートメントが含まれます

2つファイル作られる。

 

試してみて気づいたんだが、内部で後述の「方法2」の「INTO OUTFILE」を使用しているっぽい。

 

使用するには、MySQLからOSのファイルを操作可能になる「FILE」権限を持つユーザーでなければならない。

方法2. SQLの INTO OUTFILE を利用する

select * from user into outfile '/Users/***/Desktop/sql/sample.csv' fields terminated by ',' enclosed by '"' escaped by '"' lines terminated by '\r\n';

参考:ポテパンさん

最後の\r\n は、改行コードっすな。

Linuxだと\nになるのかなー

 

 

SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

qiitaの記事

では改行コード指定してないっすなー。

 

使用するには、MySQLからOSのファイルを操作可能になる「FILE」権限を持つユーザーでなければならない。

 

 

コメント

タイトルとURLをコピーしました