エラー内容
LOAD DATA INFILEコマンドでCSVファイルを読み込もうとしたら下記エラーが発生する。
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
開発環境
OS:Mac M1(BigSur11.5.2)
MySQL:5.7.34
解決法
secure-file-priv optionの設定を確認。
mysql> SELECT @@global.secure_file_priv;
+---------------------------+
| @@global.secure_file_priv |
+---------------------------+
| NULL |
+---------------------------+
ここがNULLなのが良くないらしいです。
修正するためにはmy.cnfファイルの編集が必要ですが、MySQLのバージョンによって設定方法が異なります。
MySQLのバージョンを確認。
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.34 |
+-----------+
5.7以降:自身でmy.cnfファイルを新規作成&設配置する必要があります。
ファイルパス
/MAMP/conf/my.conf
ファイルに記載する内容
[mysqld]
secure-file-priv = ""
配置できたら**「MySQLを再起動」**すること。
(MAMP右上の"stop"→"start"を押せばOK)
再度設定を確認すると、NULLがなくなりました!
mysql> SELECT @@global.secure_file_priv;
+---------------------------+
| @@global.secure_file_priv |
+---------------------------+
| |
+---------------------------+
LOAD DATA INFILEコマンドも無事実行できました。
参考:【MYSQL】データをエクスポートしようとしたらsecure-file-privがどうのこうのって言われたときの対処法
参考:MAMP(MacOS)でのmy.cnfファイルの作成方法