SQL LOAD_FILE関数を機能させたいと思っており、これに関するすべての質問/回答とドキュメントを読みましたが、これが起こっていることです。
ホームディレクトリからLOAD_FILEしたい場合:
mysql> SELECT LOAD_FILE('/home/myuser/somefile.txt');
+----------------------------+
| LOAD_FILE('/home/myuser/somefile.txt') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set (0.00 sec)
これを入手した後、おそらく問題は MySQL がホーム ディレクトリにアクセスできないことだと思いました。そして、これを実行してみましたが、うまくいきました:
SELECT LOAD_FILE('/etc/mysql/my.cnf');
その後SELECT LOAD_FILE('/etc/passwd');
もうまくいきました。
だから私は言いました、それはファイル/フォルダーの読み取り/所有権の問題です。そのため、ファイルを /etc/mysql/ に移動しましたが、それでも機能しませんでした。私は試しましchown mysql:mysql somefile.txt
たが、それでも運がありませんでした:
mysql> SELECT LOAD_FILE('/etc/mysql/somefile.txt');
+----------------------------+
| LOAD_FILE('/etc/mysql/somefile.txt') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set (0.00 sec)
PS 1.すべてのユーザー グループがすべてのファイルを読み取ることができるため、chmod を実行する必要はありません。しかし、お聞きになりたい場合は、 chmod 777も試してみました。2. MySQL で secure-file-priv 変数が設定されていないことを確認したため、いいえ、LOAD_FILE はどのパスにも制限されていません。
ここで何が問題になる可能性がありますか?