> 故障排除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 的 SELECT INTO OUTFILE 回傳錯誤代碼 13,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!