問題:
當嘗試使用SELECT INTO OUTFILE將表數據導出到服務器默認目錄之外的CSV文件時,即使調整了權限和所有權,仍然會遇到Errcode 13(權限錯誤)。這在Ubuntu系統上,尤其是在運行AppArmor的系統上經常出現。
解決方案:
1. 檢查AppArmor狀態:
執行sudo aa-status
命令來驗證mysqld是否處於強制模式。如果它出現在列表中,AppArmor很可能阻止寫入操作。
2. 編輯AppArmor配置文件:
打開/etc/apparmor.d/usr.sbin.mysqld
文件,並在文件底部添加所需的目錄路徑,確保具有讀/寫權限。例如:
<code>/usr/sbin/mysqld { ... **/data/ r, /data/* rw,** }</code>
3. 重新加載AppArmor配置文件:
執行sudo /etc/init.d/apparmor reload
命令來應用更改。
4. 重新嘗試查詢:
重新加載AppArmor配置文件後,再次嘗試SELECT INTO OUTFILE查詢。 MySQL現在應該能夠寫入到目標目錄。
警告:
注意將MySQL寫入權限授予其默認位置之外的目錄的安全性隱患。確保已採取適當措施來保護敏感數據。
以上是如何使用 SELECT INTO OUTFILE 修復 MySQL Errcode 13(權限錯誤)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!