Ralat Ditemui: MySQL Server Secure File Privileges Menyekat Pelaksanaan Kenyataan
Anda telah mengalami ralat "Kod Ralat: 1290. Pelayan MySQL sedang berjalan dengan pilihan --secure-file-priv jadi ia tidak boleh melaksanakan pernyataan ini" semasa cuba melaksanakan pernyataan MySQL yang melibatkan penggunaan perintah INTO OUTFILE.
Punca Ralat:
Pilihan secure-file-priv mengehadkan direktori tempat MySQL boleh menulis fail untuk meningkatkan keselamatan. Secara lalai, pilihan ini mengehadkan MySQL daripada menulis ke direktori luaran.
Penyelesaian Segera (Perubahan Bukan Konfigurasi):
Penyelesaian pantas untuk menyelesaikan isu ini ialah mengenal pasti direktori tempat MySQL dibenarkan untuk menulis fail:
<code class="sql">mysql> SHOW VARIABLES LIKE "secure_file_priv";</code>
Setelah anda mengenal pasti direktori yang dibenarkan, ubah suai pernyataan INTO OUTFILE anda untuk menggunakan direktori ini sebagai sasaran:
<code class="sql">SELECT * FROM xxxx WHERE XXX INTO OUTFILE '/var/lib/mysql-files/report.csv' FIELDS TERMINATED BY '#' ENCLOSED BY '"' LINES TERMINATED BY '\n'</code>
Penyelesaian Kekal (Perubahan Konfigurasi):
Windows:
Cari kumpulan "[mysqld]" dan tambah atau ubah suai pilihan "secure-file-priv" untuk nyatakan direktori yang dibenarkan. Contohnya:
<code class="ini">[mysqld] secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads"</code>
Linux:
Cari kumpulan "[mysqld]" dan tambah atau ubah suai "secure- pilihan fail-priv" untuk menentukan direktori yang dibenarkan. Contohnya:
<code class="ini">[mysqld] secure-file-priv="/var/lib/mysql-files/"</code>
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'Kod Ralat: 1290. Pelayan MySQL sedang berjalan dengan pilihan --secure-file-priv...\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!