我想让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)
Run Code Online (Sandbox Code Playgroud)
在得到这个之后,我想也许问题是MySQL无法访问我的主目录.我尝试运行它,这很好用:
SELECT LOAD_FILE('/etc/mysql/my.cnf');
Run Code Online (Sandbox Code Playgroud)
然后SELECT LOAD_FILE('/etc/passwd');工作得很好.
所以我说getcha,这是一个文件/文件夹读/所有权限问题.所以,我将我的文件移动到/ 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)
Run Code Online (Sandbox Code Playgroud)
PS 1.所有用户组都可以读取所有文件,因此无需chmod.但是如果你想问的话,我甚至尝试过chmod 777. 2.我检查过,在MySQL中没有设置secure-file-priv变量,所以不,LOAD_FILE不限于任何路径.
任何想法可能是什么问题?