1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[MySQLのエラー] ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

Last updated at Posted at 2019-11-05

ローカルに立てたデータベースサーバにローカルのCSVファイルからデータを読み込ませようとしたらエラーになったときのメモ。

エラー内容

MySQL
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

実行環境

  • OS : macOS Mojave (10.14.6)
  • MySQL : バージョン 5.7.25

実行したクエリ

MySQL
LOAD DATA INFILE '/Applications/sample/TEST.CSV' INTO TABLE `something` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

正しいクエリ

MySQL
LOAD DATA LOCAL INFILE '/Applications/sample/TEST.CSV' INTO TABLE `something` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

LOAD DATA INFILE ... ではなくて LOAD DATA LOCAL INFILE ... とすることでエラーを吐かずに実行できました。前者はサーバ上のファイルを読み込む場合、後者はローカルのファイルを読み込む場合に使用します。
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement のエラー内容で検索するとDBの設定ファイル、my.cnfやらmy.iniやらを編集するという記事がよく出てくるのですが、自分の場合、設定ファイルは特に触らずいけました。
また、クエリ内のテーブル名よりも後ろはオプションなので、どのような処理を走らせたいかで変わってくると思います。

ちなみにテーブル名 something のところをバッククォートで囲っていますが、SQLの予約語だったときにエスケープするためなので、基本バッククォートはなくても実行可能です。(むしろ予約語ならなるべくその名前を使わない方が良いと思うのでどうしてもという場合以外はなくて良いかも)

今日はそんな感じです!

参考URL

MySQLでファイルのデータをテーブルに挿入する
MySQLでCSVファイルを使って結果出力やデータ入力を行う方法
secure_file_privを設定してMySQLのファイル作成権限を変更する
[ MySQL ] データをCSVでエクスポートしようとして、secure-file-privに引っかかった件
phpMyAdminのSQLに付加される「’」に似た記号「`」は何?

1
2
0

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?