MySQL 的 SELECT INTO OUTFILE 錯誤代碼 13 故障排除:超出基本權限
使用 SELECT INTO OUTFILE
將 MySQL 數據導出到 CSV 可能會因 Errcode 13(權限錯誤)而受阻。雖然文件權限不足是常見的罪魁禍首,但即使目錄權限正確,問題仍然存在,這通常是由於現代 Ubuntu Server 版本中 AppArmor 的安全措施所致。
AppArmor 在 MySQL 權限中的作用
AppArmor 是一個 Linux 安全模塊,限制應用程序對系統資源的訪問。 如果 MySQL 在 AppArmor 配置文件下運行(使用 sudo aa-status
檢查;在“強制模式下的配置文件”下查找“/usr/sbin/mysqld”),其寫入訪問可能會受到限制。
解決問題:授予 AppArmor 訪問權限
允許 MySQL 寫入特定位置:
編輯 AppArmor 配置文件: 打開 /etc/apparmor.d/usr.sbin.mysqld
進行編輯。
添加寫入權限: 添加授予目標目錄讀/寫訪問權限的行。例如:
<code>/usr/sbin/mysqld { ... /data/ r, /data/* rw, }</code>
這允許 MySQL 讀取和寫入 /data
及其子目錄。
重新加載 AppArmor: 執行 sudo /etc/init.d/apparmor reload
以應用更改。
重新啟動 MySQL:重新啟動 MySQL 服務。 重試您的 SELECT INTO OUTFILE
命令。
重要安全說明:仔細考慮通過 AppArmor 授予對 MySQL 的寫訪問權限的影響。 僅授予對絕對必要目錄的訪問權限,以最大程度地降低安全風險。
以上是儘管文件權限正確,但為什麼MySQL在Errcode 13中選擇外船上的外船上失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!