IT業界の技術をメモ・情報公開できる

mysql CSV出力

登録日:2024-08-27   
@ms
・カラム名なし
SELECT * FROM my_table
INTO OUTFILE '/path/to/your/output.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

のSQLで出力できる・


・カラム名も出力
# カラム名を取得してCSVに出力
mysql -u username -p -e "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name' AND TABLE_SCHEMA = 'your_database_name';" | sed '1d' | tr '\n' ',' | sed 's/,$//' > output.csv

# データをCSVに追加
mysql -u username -p -e "SELECT * FROM your_database_name.your_table_name INTO OUTFILE '/path/to/your/output.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';" >> output.csv

ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the FILE privilege(s) for this operation
が表示される場合



FILE特権がないユーザーは、ファイルの出力が許可されていないため、システム管理者に依頼して、必要な特権を付与してもらうのが最も確実な方法です。
GRANT FILE ON *.* TO 'your_username'@'your_host';
FLUSH PRIVILEGES;

一覧に戻る