Rumah  >  Artikel  >  pangkalan data  >  Mengapa MySQL Tidak Menawarkan Setara \"SELECT * INTO OUTFILE LOCAL\"?

Mengapa MySQL Tidak Menawarkan Setara \"SELECT * INTO OUTFILE LOCAL\"?

Susan Sarandon
Susan Sarandonasal
2024-10-26 07:38:30310semak imbas

 Why Doesn't MySQL Offer a

MySQL: Meneroka SELECT * INTO OUTFILE LOCAL Conundrum

Migrasi pangkalan data boleh memberikan cabaran yang tidak dijangka, kerana sesetengah ciri mungkin tidak lagi berfungsi seperti yang diharapkan. Dalam kes MySQL, pernyataan SELECT * INTO OUTFILE, setelah digunakan untuk mengeksport data ke fail teks, tidak lagi berfungsi atas sebab keselamatan.

Walau bagaimanapun, kenyataan LOAD DATA INFILE boleh diubah suai kepada LOAD DATA LOCAL INFILE, membenarkan data diimport daripada fail tempatan. Ini menimbulkan persoalan: mengapa tiada SELECT INTO OUTFILE LOCAL yang setara?

Menurut manual MySQL, SELECT * INTO OUTFILE terutamanya bertujuan untuk menjana fail teks dengan cepat pada pelayan. Walau bagaimanapun, membuat fail pada klien jauh tidak dibenarkan kerana kebimbangan keselamatan.

Sebagai alternatif, arahan berikut boleh digunakan untuk menjana fail pada hos klien:

mysql -h my.db.com -u username -p password db_name -e'SELECT foo FROM bar' > /tmp/myfile.txt

Berkenaan MariaDB , ia nampaknya tidak menawarkan penyelesaian langsung kepada isu ini. Walau bagaimanapun, ia menyediakan ciri keselamatan tambahan untuk pemindahan data, seperti keupayaan untuk menyekat akses fail kepada pengguna atau alamat IP tertentu.

Atas ialah kandungan terperinci Mengapa MySQL Tidak Menawarkan Setara \"SELECT * INTO OUTFILE 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