我想让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)
P.S. 1. 所有文件均可被所有用户组读取,因此无需进行chmod操作。但如果您愿意的话,我甚至尝试了 chmod 777 。 2. 我已经检查过,在MySQL中未设置secure-file-priv变量,因此LOAD_FILE没有受到任何路径的限制。
您有什么想法,可能是什么问题呢?