我想让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’);工作得很好.
所以我说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)
附:
1.所有用户组都可以读取所有文件,因此无需chmod.但是如果你想问的话,我甚至尝试过chmod 777.
2.我检查过,在MysqL中没有设置secure-file-priv变量,所以不,LOAD_FILE不限于任何路径.
任何想法可能是什么问题?
最佳答案
我发现它与AppArmor有关.我禁用了AppArmor for MysqL并且它有效.
对于有同样问题的人,请在此处阅读:http://www.cyberciti.biz/faq/ubuntu-linux-howto-disable-apparmor-commands/
原文链接:https://www.f2er.com/mysql/433482.html对于有同样问题的人,请在此处阅读:http://www.cyberciti.biz/faq/ubuntu-linux-howto-disable-apparmor-commands/