1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

secure_file_privの設定

Posted at

Introduction

最近SQLを勉強し始めたので自分のメモ代わりに得た知識を書こうと思います。
OSはwindowsでMYSQL server 5.7を使っています。

LOAD DATA INFILE

CSVファイルをLOAD DATA INFILEで取り込おうとしたらエラーが出ました。エラーメッセージではsecure_file_privがどうのこうの......
ではまずsecure_file_privとはなんなのか確認していきます。

secure_file_priv

secure_file_privはデフォルトで設定される項目の一つです。
secure_file_privがデフォルトで設定されているときは、その設定されているディレクトリにあるファイルしか読み取れません。
secure_file_privの値の確認は

mysql> SELECT @@global.secure_file_priv
で確認できます。

windowsの場合はProgramData/MySQL server 5.7/uploadsが指定されているようです。

CSVファイルのIMPORT

では実際にuploadsの中にあるcsv fileをimportするcodeは以下です。取り込みたいファイルをselect@@global.secure_file_privで得られたディレクトリに置いておくのを忘れないでください。

C:/ProgramData/MySQL/MySQL server 5.7/Uploads/に入っているfile.csvをdbというデータベースのtabというtableにimportします。

DATA LOAD INFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/
file.csv' INTO TABLE db.table

selec @@global.secure_file_privで指定されているディレクトリ以外からファイルを取り込む方法は以下に記しておきます。

secure_file_privの変更

secure_file_privを変更したい、もしくはどのディレクトリからもcsvファイルを取り込みたいときは以下のようなことをします。

C:/ProgramData/MySQL/MySQL server 5.7 のmy.iniというファイルを開く
125行目くらいにあるsecure_file_priv="C:/ProgramData/MySQL/MySQL server 5.7/Uploads/"の行を見つけます。
secure_file_priv="C:/ProgramData/MySQL/MySQL server 5.7/Uploads/" の" "の間に指定したいディレクトリのpathを書きます。どのディレクトリからもimportしたいときは空白にしてください。

MySQLを再起動します。
SELECT @@global.secure_file_privを実行し、指定したディレクトリのpathが入っていればOKです。

ProgramdDataの場所がわからない場合は以下を参考にしてください。

ProgramDataの場所

uploadsにファイルを入れなければいけないのは分かったが、そもそもProgramDataが見つからない。
ProgramDataは隠しファイルになっているのでデフォルトのままでは表示されないことになっています。
ですので、隠しファイルを表示するように設定する必要があります。
ファイルを開くところに行き、

表示 -> 隠しファイル のところチェック!!

これだけです。(^▽^)/

Reference

https://fisproject.jp/2016/03/mysql5-7-import-from-csv/
http://androidlover.net/android-emulator/bluestacks/windows-hidden-programdata-folder-appear.html

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?