Ubuntu20.04下MySQL导出查询结果报Errcode:13权限错误原因是什么?
报错根因
- MySQL服务运行用户无目录访问权限:Ubuntu 20.04 环境下 MySQL 默认以
mysql系统用户身份运行,而/root/目录默认权限为700,仅所有者root用户可进入、读写,mysql用户完全没有权限访问/root/sql/路径,自然无法写入文件。 - AppArmor安全策略拦截:Ubuntu 默认为 MySQL 配置了 AppArmor 强制访问控制规则,仅允许 MySQL 向
/var/lib/mysql/、/tmp/等预设白名单目录写入文件,/root/路径不在允许范围内,即便手动修改/root/sql/目录权限对mysql用户开放,写入操作依然会被AppArmor拦截。 - 目标路径配置错误:若
/root/sql/目录未提前创建,或是目录设置了不可写权限,也会触发该类报错。
快速解决方法
如果仅需要导出查询结果,可直接使用shell输出重定向绕开MySQL服务端的写入权限限制,命令如下:
mysql -u root -p nextcloud -e "select * from oc_share" > /root/sql/test.txt
该方式由当前执行命令的用户(通常是root)完成文件写入,不受MySQL服务端权限和AppArmor规则限制。
内容的提问来源于stack exchange,提问作者Muhamamd Salman Khan
相关产品推荐
相关产品推荐

