忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

MySQLのテーブルからcsvを作成する~プログラム超初心者のためのLinuxコマンド~

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

MySQLのテーブルからcsvを作成する~プログラム超初心者のためのLinuxコマンド~

今回は、テーブルからcsvを作成する方法をいくつか整理しておきたいと思います。
あと、その周辺知識でハマったところも、、




■Linuxコマンドを利用した方法

①sqlファイルとtxtファイルを作成する
mysqldump -u ユーザー名 -p --tab=/tmp --fields-terminated-by="," --fields-optionally-enclosed-by="\"" --lines-terminated-by="\r\n" データベース名 テーブル名

②txtファイルをcsvファイルへ変換する
mv m_class.txt m_class.csv

③csvファイルを開くと、null部分だったセルが「¥N」となっているので、これを一括削除する


■MySQLコマンドを利用した方法

①データベースへ入る
mysql -u ユーザー名 -D データベース名 -p

②csvファイルを作成する
select * from テーブル名
into outfile "/tmp/出力ファイル名(テーブル名.csv)"
fields terminated by ','
optionally enclosed by '"';


③csvファイルを開くと、null部分だったセルが「¥N」となっているので、これを一括削除する





下記は、各コマンドの説明です。

INTO OUTFILE: 出力先パス
FIELDS TERMINATED BY:フィールドの区切り文字
OPTIONALLY ENCLOSED BY:フィールドを囲う文字
LINES TERMINATED BY:行の区切り文字(行が変わる際の文字)
ESCAPED BY:エスケープ文字





MySQLのコンソールからCSVにエクスポートする権限がないという下記エラーが出た場合は、rootでFILE権限を付与する下記コマンドを実行してください。


ERROR 1045 (28000): Access denied for user '*****'@'*****' (using password: NO)


$ mysql -u root -p
mysql> grant file on *.* to '*****'@'*****';
mysql> flush privileges;


flush privileges;」は権限を反映するコマンドです。


権限の反映を確認するには、現在の権限を確認する下記MySQLコマンドを実行します。

show grants;

または、

show grants for current_user();


以上です。



【参考サイト】
『MySQLのSELECT文でcsvを出力する』
『MySQLでインポート/エクスポートするための権限付与 』
『ユーザ権限の確認・追加』
『権限の種類と設定されている権限の確認』
PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R