質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Q&A

1回答

956閲覧

cloud9でmysqlにcsvをインポートしたい、--secure-file-priv optionを何とかしたい

soupofmo

総合スコア18

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

0グッド

0クリップ

投稿2018/12/16 15:34

cloud9上でmysqlのtable(import_practice)にcsvファイルの内容を以下のような手順でインポートしようとしました。

mysql> LOAD DATA INFILE "import_practice.csv" -> INTO TABLE import_practice FIELDS TERMINATED BY "," -> LINES TERMINATED BY "\r\n";

しかし

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

というように「--secure-file-priv option」とやらのせいで実行できないというエラー文が出てしまいました。

対処法がわかる方、どうかご教示お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

お使いのサーバーでは、

デフォルトでは、この変数は空です。
ディレクトリの名前に設定すると、LOAD_FILE() 関数と、LOAD DATA および SELECT ... INTO OUTFILE ステートメントの効果を制限し、そのディレクトリ内のファイルにのみ機能します。

とあるように secure_file_priv は、セキュリティ向上のために、MySQL サーバーで、指定したディレクトリにあるファイルからのみインポートできるように制限する機能が設定されているようです。


まず、mysql クライアントから

SQL

1SHOW VARIABLES LIKE "secure_file_priv";

を実行して、どのディレクトリが、ファイルのインポートを許可されているか調べてください。

次に 表示されたディレクトリにインポートしたいファイルを置いて、そのディレクトリのファイルを指定して、インポートする SQL を実行してください。

投稿2018/12/17 00:14

編集2018/12/17 00:15
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

soupofmo

2018/12/19 13:53

ご回答ありがとうございます。 教えていただいた通り調べてみたところ +------------------+-----------------------+ | Variable_name | Value | +------------------+-----------------------+ | secure_file_priv | /var/lib/mysql-files/ | +------------------+-----------------------+ と許可されているディレクトリがわかりました。 ただ、 ・どのようにこのディレクトリにcsvファイルをアップロードすればよいのか ということが分からないのでよろしければやり方を教えてください。
CHERRY

2018/12/19 14:01

sftp とか scp とかで、アップロードしてと言う感じになると思いますが、サーバーの状況がわからないので...
CHERRY

2018/12/19 14:03

もし、サーバーの設定を変更できる(変更しても問題ない)のであれば、MySQL サーバーの `my.cnf` で、 [mysqld] secure-file-priv = "" という設定をしてから、mysql を再起動して、secure-file-priv の設定を無効化する方法もあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問