Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Dibenarkan dengan Versi MySQL' Apabila Menggunakan LOAD DATA LOCAL?

Bagaimana untuk Membetulkan Ralat 'Arahan Tidak Dibenarkan dengan Versi MySQL' Apabila Menggunakan LOAD DATA LOCAL?

DDD
DDDasal
2025-01-24 09:46:09662semak imbas

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.

How to Fix the

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:

  • Menggunakan mysqlimport: Alat baris arahan ini ialah alternatif yang lebih selamat untuk mengimport data daripada fail.
  • Memindahkan fail ke pelayan dahulu: Muat naik fail data ke pelayan menggunakan 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!

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