Rumah >pangkalan data >tutorial mysql >Mengapa MySQL memilih ke dalam outfile gagal dengan errcode 13 walaupun kebenaran fail yang betul?
Menyelesaikan masalah SELECT IN TO OUTFILE MySQL Errcode 13: Melampaui Kebenaran Asas
Menggunakan SELECT INTO OUTFILE
untuk mengeksport data MySQL ke CSV boleh digagalkan oleh Errcode 13, ralat kebenaran. Walaupun kebenaran fail yang tidak mencukupi adalah penyebab biasa, masalah ini berterusan walaupun dengan kebenaran direktori yang betul, selalunya disebabkan oleh langkah keselamatan AppArmor dalam versi Pelayan Ubuntu moden.
Peranan AppArmor dalam Kebenaran MySQL
AppArmor, modul keselamatan Linux, mengehadkan akses aplikasi kepada sumber sistem. Jika MySQL dijalankan di bawah profil AppArmor (semak dengan sudo aa-status
; cari "/usr/sbin/mysqld" di bawah "profil dalam mod penguatkuasaan"), akses tulisnya mungkin terhad.
Menyelesaikan Isu: Memberi Akses AppArmor
Untuk membenarkan MySQL menulis ke lokasi tertentu:
Edit profil AppArmor: Buka /etc/apparmor.d/usr.sbin.mysqld
untuk mengedit.
Tambah kebenaran menulis: Tambah baris yang memberikan akses baca/tulis kepada direktori sasaran. Contohnya:
<code>/usr/sbin/mysqld { ... /data/ r, /data/* rw, }</code>
Ini membolehkan MySQL membaca dan menulis ke /data
dan subdirektorinya.
Muat Semula AppArmor: Laksanakan sudo /etc/init.d/apparmor reload
untuk menggunakan perubahan.
Mulakan semula MySQL: Mulakan semula perkhidmatan MySQL. Cuba semula perintah SELECT INTO OUTFILE
anda.
Nota Keselamatan Penting: Pertimbangkan dengan teliti implikasi pemberian akses tulis kepada MySQL melalui AppArmor. Hanya berikan akses kepada direktori yang sangat diperlukan untuk meminimumkan risiko keselamatan.
Atas ialah kandungan terperinci Mengapa MySQL memilih ke dalam outfile gagal dengan errcode 13 walaupun kebenaran fail yang betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!