Rumah >pangkalan data >tutorial mysql >Mengapa MySQL memilih ke dalam outfile gagal dengan errcode 13 walaupun kebenaran fail yang betul?

Mengapa MySQL memilih ke dalam outfile gagal dengan errcode 13 walaupun kebenaran fail yang betul?

Barbara Streisand
Barbara Streisandasal
2025-01-24 15:07:13651semak imbas

Why Does MySQL SELECT INTO OUTFILE Fail with Errcode 13 Despite Correct File Permissions?

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:

  1. Edit profil AppArmor: Buka /etc/apparmor.d/usr.sbin.mysqld untuk mengedit.

  2. 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.

  1. Muat Semula AppArmor: Laksanakan sudo /etc/init.d/apparmor reload untuk menggunakan perubahan.

  2. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn