> 故障排除MySQL的选择到Outfile Errcode 13
>>使用MySQL的SELECT INTO OUTFILE
将数据导出到CSV可能会触发Errcode 13权限错误。当输出文件的位置不是MySQL的默认存储目录(通常/tmp
)时,通常会发生这种情况。 保存到替代目录时,用户经常遇到此问题。
此错误源于操作系统安全。 诸如Ubuntu Server之类的发行版通常默认为Apparmor,MySQL配置文件可能处于“执行”模式。这限制了MySQL对某些目录的写入访问。
> 为了解决此问题,请调整MySQL的AppArmor配置文件,以允许写入您选择的目录:
检查AppArmor状态:使用此命令确认MySQL的AppArmor模式:
<code class="language-bash">sudo aa-status</code>
>编辑AppArmor配置文件(如果在执行模式下):如果Apparmor正在执行,请修改>文件。 添加或修改行授予对目标目录的写入访问权限。 例如,允许写入/etc/apparmor.d/usr.sbin.mysqld
及其子目录:/data/
>
<code>/usr/sbin/mysqld { ... **/data/ r, /data/* rw, }</code>
>重新加载apparmor profiles:编辑配置文件后,reload apparmor:
<code class="language-bash">sudo /etc/init.d/apparmor reload</code>
重要的安全考虑因素:授予对MySQL的写入访问需要仔细考虑安全含义。 实施强大的权限和安全措施,以防止未经授权的数据访问。
以上是为什么MySQL将其选择到Outfile返回Errcode 13中,我该如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!