LoginSignup
74
61

More than 5 years have passed since last update.

MySQLのCSV出力が権限によって出来ない場合の対処法

Posted at

はじめに :dolphin:

MySQLのSELECT文でcsvを出力する

を参考にCSVファイルを出力したのですが、環境によってはユーザ権限の問題等によりエラーが発生してしまいます。

「とりあえずCSV出力したいんじゃ :punch: 」という方への対処法を調査したのでこちらに記載いたします。

こんなエラーが発生する

ERROR 1 (HY000): Can't create/write to file '/tmp/fruits.csv' (Errcode: 13)
ERROR 1045 (28000): Access denied for user '{ユーザ名}'@'%' (using password: YES)

結論 :tada:

以下でザクッと解決

tsv

mysql -h {host名} -u{user名} -p {DB名} -e "{SQL}" > {ファイルパス}

具体的には…

mysql -h database.com -uadmin_user -p my_database -e "select * from fruits;" > /tmp/fruits.tsv

csv

mysql -h {host名}  -u{user名} -p {DB名} -e "{SQL}" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/fruits.csv

具体的には…

mysql -h database.com -uadmin_user -p my_database -e "select * from fruits;" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/fruits.csv

おわりに

原因として、MySQLログインユーザのファイル書き込み権限がなかったことなどが挙げられます。詳しく知りたい方は以下の記事が非常に参考になりますのでご覧ください。

MySQL SQL結果をINTO OUTFILEを使用せずCSV取得

MySQLリモートDBの結果をローカルCSVファイルに出力する方法

74
61
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
61