ERROR 1 (HY000): Can't create/write to file '/var/www/11.txt' (Errcode: 13)排错过程
原因:
执行sql语句:select 'x' into outfile '/var/www/11.txt';
显示如下错误(我的系统是ubuntu)
疑点:
select 'x' into outfile '/tmp';
可以执行,没有报错。这个可以写入是因为/tmp是mysql的临时目录,但当时我考虑的是权限问题,于是chmod -R 777 /var,但依旧无法写入。
解决方案:
方案一:若系统中有selinux,则vim /etc/selinux/config
,修改SELINUX,即修改为SEXLINUX=disabled
,关闭SEXLINUX,问题即可解决
方案二:若系统中没有selinux(一般这个系统是ubuntu),则vim /etc/apparmor.d/user.sbin.mysqld
,修改该文件,最后一行添加/** rw,
,z这是增加mysqld可访问的新的目录(**相当于chmod -R的-R参数,r读权限,w写权限),再重启服务/etc/init.d/apparmor reatart
,问题即可解决
两者二选一,我使用的是ubuntu,第二种方案解决了该问题
apparmor了解:https://www.cnblogs.com/zlhff/p/5464862.html
问题解决参考:http://www.360doc.com/content/16/0930/17/19351147_594933623.shtml https://www.jianshu.com/p/f5a86c7764f7
有一篇文章认为是权限问题,并且成功的,但我用他方法没有成功,我也贴出来,给大家参考:https://blog.51cto.com/lynnteng0/912698