Cara menggunakan mysql secure_file_priv
Show File Comma Separated Values (CSV) adalah cara untuk mentransfer data antar aplikasi. Basis data seperti MySQL dan perangkat lunak spreadsheet seperti Excel mendukung impor dan ekspor melalui CSV, sehingga Anda dapat menggunakan file CSV untuk bertukar data di antara keduanya. File CSV adalah teks biasa, sehingga secara alami ringan dan mudah diekspor dari MySQL. Dari server basis dataJika Anda memiliki akses ke server yang menjalankan MySQL, Anda dapat mengekspor pilihan dengan SELECT id, column1, column2 FROM table INTO OUTFILE '/tmp/mysqlfiles/table.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'n' Ini akan menampilkan file CSV ke: Anda juga harus memastikan bahwa Anda dapat
memasukkan folder tertentu ke daftar putih dengan mengedit file konfigurasi MySQL Anda (biasanya ditemukan di [mysqld] secure-file-priv = "/tmp/mysqlfiles" Mengizinkan MySQL untuk membaca dan menulis ke Dengan "3","Escape, this","also, this" Yang dapat Anda gunakan dan impor langsung ke program spreadsheet atau perangkat lunak lainnya. Perhatikan bahwa file CSV yang diekspor tidak akan berisi tajuk kolom apa pun, tetapi kolom akan berada dalam urutan yang sama
dengan Dari baris perintah MySQLJika Anda hanya memiliki akses baris perintah ke instans MySQL dan tidak ada akses ke server itu sendiri (seperti ketika tidak dikontrol oleh Anda, dalam kasus Amazon RDS),
masalahnya sedikit lebih rumit. Sementara Anda dapat menggunakan Cukup masukkan kueri dari baris perintah dan kirimkan ke file: mysql -u root -e "select * from database;" > output.tsv Karena keluaran MySQL dibatasi tab, ini disebut file TSV, untuk “nilai yang dipisahkan tab”, dan dapat berfungsi sebagai pengganti file CSV Anda di beberapa program, seperti impor spreadsheet. Tapi itu bukan file CSV dan mengubahnya menjadi file itu rumit. Anda cukup mengganti setiap tab dengan koma, yang akan berfungsi, tetapi akan gagal jika ada koma dalam data input. Jika Anda 100% yakin tidak ada koma di file TSV Anda (periksa dengan sed "s/t/,/g" output.tsv > output.csv Tetapi jika Anda memiliki koma di data Anda, Anda perlu menggunakan regex yang lebih panjang: sed "s/'/'/;s/t/","/g;s/^/"/;s/$/"/;s/n//g" output.tsv > output.csv Ini akan dengan benar keluar dari bidang yang dikutip, yang akan menyelesaikan masalah koma. Catatan: karakter tab
sed "s/ /,/g" output.tsv > output.csv Jika data input Anda berisi tab, Anda kurang beruntung dan harus membuat file CSV sendiri dengan bahasa skrip. Lakukan secara manual dengan bahasa pemrograman asliMySQL (dan sebagian besar database) dirancang untuk digunakan, jadi Anda mungkin sudah memiliki semacam bahasa pemrograman yang terkait dengan MySQL. Sebagian besar bahasa juga dapat menulis ke disk, sehingga Anda dapat membuat skrip keluaran CSV Anda sendiri dengan membaca bidang langsung dari database, menghapusnya dengan benar, dan menulis file yang dipisahkan koma. Contoh di Python. |