RDSでcsvファイルをインポートしようとして権限エラーになったときの対応

  • 12
    Like
  • 0
    Comment
More than 1 year has passed since last update.

AWS上で MySQL な RDS を利用していたときに発生してて聞かれて調べた件。

クライアント側でもmysqlコマンドが使えるとき。
csv ファイルをimportしようとし、

mysql> LOAD DATA INFILE '/home/simeji/data.csv' INTO TABLE simeji.simeji_test FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';

>> ERROR 1045 (28000): Access denied for user 'simeji'@'%' (using password: YES)

こんな感じで Access denied っておこられてしまいました。

FILE 権限がないんだなと思って、つけようと試みてみましたが、そもそも RDS の MySQL はセキュリティ周りの問題で FILE をはじめ、いくつかの権限がつけれない模様。

ちょっとしらべてたら、stack overflow の記事 を見つけて LOAD DATA LOCAL INFILE ならできそうな感じだったので試してみたらできました。

mysql> LOAD DATA LOCAL INFILE '/home/simeji/data.csv' INTO TABLE simeji.simeji_test FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';

参考リンク: MySQL DB インスタンスからのデータのインポートおよびエクスポート(公式ドキュメント)