Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Dibenarkan dengan Versi MySQL' Apabila Menggunakan LOAD DATA LOCAL?
Menyelesaikan Ralat "Arahan Tidak Dibenarkan" MySQL Semasa Memuatkan Data
Menghadapi ralat MySQL "ERROR 1148: Perintah yang digunakan tidak dibenarkan dengan versi MySQL ini" semasa menggunakan LOAD DATA LOCAL
bermakna kata kunci LOCAL
dilumpuhkan. Ini adalah langkah keselamatan. Untuk memuatkan data secara setempat, anda mesti mendayakan pilihan local-infile
secara eksplisit.
Penyelesaian Sebelah Pelanggan:
Penyelesaian paling mudah ialah mendayakan local-infile
apabila menyambung ke pelayan MySQL anda:
<code class="language-bash">mysql -u myuser -p --local-infile mydatabase</code>
Ganti myuser
dengan nama pengguna MySQL anda, -p
gesaan untuk kata laluan anda dan mydatabase
dengan nama pangkalan data anda.
Nota Keselamatan Penting: Mendayakan local-infile
memperkenalkan kelemahan keselamatan. Hanya dayakannya apabila benar-benar perlu dan lumpuhkannya selepas itu.
Penyelesaian Sebelah Pelayan (Lebih Kekal, tetapi Memerlukan Berhati-hati):
Untuk penyelesaian yang lebih kekal, dayakan local-infile
pada pelayan MySQL itu sendiri. Ini memerlukan mengubah suai fail konfigurasi MySQL (my.cnf
pada Linux/macOS, my.ini
pada Windows). Berhati-hati apabila mengubah suai fail konfigurasi pelayan. Perubahan yang salah boleh menjejaskan keselamatan pelayan anda.
Tambah atau ubah suai baris berikut dalam fail my.cnf
anda:
<code>loose-local-infile = 1</code>
Kemudian, mulakan semula pelayan MySQL anda untuk perubahan berkuat kuasa. Selepas pemuatan data selesai, amat disyorkan untuk menetapkan loose-local-infile
kembali kepada 0 atau mengalih keluar talian untuk mengurangkan risiko keselamatan.
Pendekatan Alternatif (Disyorkan):
Kaedah yang paling selamat dan digemari secara umum adalah dengan mengelak LOAD DATA LOCAL
sama sekali. Sebaliknya, gunakan kaedah yang tidak melibatkan pemuatan data terus daripada sistem fail tempatan pelanggan. Ini mungkin melibatkan:
mysqlimport
: Alat baris arahan ini ialah alternatif yang lebih selamat untuk mengimport data daripada fail.scp
, sftp
atau kaedah pemindahan fail selamat yang lain, kemudian gunakan LOAD DATA INFILE
(tanpa LOCAL
kata kunci) untuk memuatkan data daripada sistem fail pelayan.Ingat untuk sentiasa mengutamakan keselamatan apabila bekerja dengan pangkalan data. Mendayakan local-infile
sepatutnya menjadi langkah sementara, dan pendekatan alternatif biasanya lebih selamat dan disyorkan untuk pemuatan data jangka panjang.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Dibenarkan dengan Versi MySQL' Apabila Menggunakan LOAD DATA LOCAL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!