MySQL执行SELECT INTO OUTFILE报OS errno 13权限被拒绝如何解决
MySQL INTO OUTFILE 权限报错(OS errno 13)修复方案
- 先排查目录权限链问题:你仅给Desktop目录设置777权限无效,因为MySQL服务运行在
mysql用户下,需要路径上每一级父目录都拥有可执行权限才能进入目标目录。Ubuntu 20.04默认用户家目录/home/<user_name>的权限为drwxr-x---,其他用户无访问权限,所以mysql用户无法进入路径。
执行如下命令将mysql用户添加到你的个人用户组,获取家目录访问权限:
执行完成后重启MySQL服务生效:sudo usermod -aG <替换为你的系统用户名> mysqlsudo systemctl restart mysql - 检查目标路径下是否已存在
test1.csv文件:INTO OUTFILE语法不支持覆盖已有文件,若文件已存在请手动删除后再重试导出命令。 - 验证AppArmor配置生效状态:执行
sudo aa-status检查MySQL的AppArmor规则是否确实关闭,若仍处于enforce状态可临时停止对应规则:sudo aa-complain /usr/sbin/mysqld - 推荐无权限修改的替代方案:无需调整服务端权限,直接通过MySQL客户端导出CSV,使用当前登录用户的权限写文件,兼容性更高:
mysql -u 你的数据库用户名 -p 你的数据库名 -e "select * from my_table;" | sed 's/\t/,/g' > ~/Desktop/test1.csv
内容的提问来源于stack exchange,提问作者Tanawin Devaveja
相关产品推荐
相关产品推荐

