2021-01-28

AWSサーバでDBのsql結果をcsvファイルで抽出したい時

 AWSサーバへのログインアカウントがec2-userのときは、mysql(MariaDB)にrootでログインして取得したsql文の結果を into outfile で指定ディレクトリにダウンロードできないようです。

https://qiita.com/AKB428/items/a1d05f663d16de04f6ee

こちらを参考にして /var/lib/mysql 以下をのぞいてみましたがパーミッションではじかれます。また、/tmp/yourfile01.csv などと保存場所をフルパスで指定しても見当たりません。検索掛けてみると

などで詳しく解説されているのですが、結局

https://stackoverflow.com/questions/9536224/exporting-table-from-amazon-rds-into-a-csv-file

を参考にして mysql に入らずにコマンドラインからそのまま

# mysql -u root -p --database=yourDB -e "select * FROM yourtable"  | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > /var/www/****/yourfile01.csv

などとするとパスワード入力後、無事ファイルが生成されました。パイプのsed以下はcsv形式にするおまじないのようです。

0 件のコメント: