我想让 SQL 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不限于任何路径。
有什么想法可能是这里的问题吗?