自分用メモ
INTO OUTFILEを使う場合
MySQLサーバーがオンプレミスの場合はこっち
SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
スクリプト経由で出力する場合
クラウドのサーバーだと権限的にINTO OUTFILE
使おうとすると
ERROR 1045 (28000): Access denied for user '{ユーザ名}'@'%' (using password: YES)
ってなる。つまり権限がない
そんなときはパイプを使う
mysql -h example.com -uuser -p mydatabase -e "select * from users" | sed -e 's/\t/","/g' > /tmp/users.csv
1セルごとに「"」で囲みたい場合は以下
mysql -h example.com -uuser -p mydatabase -e "select * from users" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/users.csv