Ini mudah dilakukan di MySQL. Anda dapat melakukan ini menggunakan IDE atau baris perintah, menggunakan perintah MySQL bawaan
Mari lihat
Daftar isi
Kueri Dasar
Mari gunakan contoh sederhana dari pernyataan SELECT untuk ini
SELECT id, first_name, last_name FROM customer;Inilah hasilnya
idfirst_namelast_name1JohnSmith2MaryMcAdams3StevePitt4MarkCousins5ShaunJones7AmyMcDonald8BradSwan10WendyJohnsonKami dapat melihat hasil ini di output baris perintah kami atau di IDE, seperti MySQL Workbench
Bagaimana kita bisa menyimpannya ke dalam file teks?
Kami dapat menyalin dan menempelkannya, tetapi itu lambat dan manual
Simpan Hasil MySQL ke File
Ada keluaran MySQL bawaan ke fitur file sebagai bagian dari pernyataan SELECT
Kami cukup menambahkan kata INTO OUTFILE, diikuti dengan nama file, di akhir pernyataan SELECT
Sebagai contoh
SELECT id, first_name, last_name FROM customer INTO OUTFILE '/temp/myoutput.txt';_Ini akan membuat file baru bernama myoutput. txt yang berisi hasil query ini, dalam folder bernama temp
Apa yang terjadi jika Anda mendapatkan kesalahan ini (seperti yang saya alami)?
Kode Kesalahan. 1290. Server MySQL berjalan dengan opsi –secure-file-priv sehingga tidak dapat menjalankan pernyataan ini
Saya akan menjelaskan lebih lanjut tentang menyelesaikan ini nanti di panduan ini
Untuk saat ini, dengan asumsi Anda dapat menjalankan pernyataan untuk menghasilkan file, akan terlihat seperti ini
Teks dalam file tersebut adalah
1 John Smith 2 Mary McAdams 3 Steve Pitt 4 Mark Cousins 5 Shaun Jones 7 Amy McDonald 8 Brad Swan 10 Wendy JohnsonSeperti yang Anda lihat, bidang dipisahkan oleh tab. Ini adalah perilaku default, tetapi dapat diubah
Mengubah Parameter untuk Mengatur Nilai yang Dipisahkan Koma
Anda dapat mengubah parameter kata kunci INTO OUTFILE ini untuk mengubah cara penulisan file
Ada beberapa parameter tambahan. Ini adalah beberapa yang paling umum
- BIDANG DIHENTIKAN OLEH. ini menunjukkan karakter yang digunakan untuk mengakhiri bidang
- DITUTUP OLEH. ini menunjukkan karakter yang akan digunakan untuk mengelilingi setiap bidang
- GARIS DIHENTIKAN OLEH. ini menunjukkan karakter yang digunakan untuk mengakhiri baris dan memulai baris baru
Misalnya, untuk memilih data ke file CSV dan menyertakan setiap bidang dalam tanda kutip ganda
SELECT id, first_name, last_name FROM customer INTO OUTFILE '/temp/myoutput.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';Jika kami menjalankan pernyataan ini, kami dapat memeriksa file, yang akan terlihat seperti ini
Teks dalam file tersebut adalah
"1","John","Smith" "2","Mary","McAdams" "3","Steve","Pitt" "4","Mark","Cousins" "5","Shaun","Jones" "7","Amy","McDonald" "8","Brad","Swan" "10","Wendy","Johnson"_Jadi begitulah cara Anda dapat membuat teks atau file CSV dari hasil kueri MySQL. Anda menambahkan parameter INTO OUTFILE ke akhir kueri SELECT Anda
Untuk mengekspor atau mengimpor dengan MySQL, mulailah dengan masuk ke server Anda, sebaiknya dengan akses sudo (root)
Mengekspor dari MySQL
Alat terbaik untuk mengekspor database MySQL ke file teks adalah mysqldump
Untuk menggunakan mysqldump, Anda perlu mengetahui kredensial login dari MySQL user yang sesuai yang memiliki hak istimewa yang diperlukan untuk mengekspor database yang dimaksud
Dengan informasi itu di tangan, masukkan perintah mysqldump dengan bendera dan opsi yang sesuai
$ mysqldump -u my_username -p database_name > output_file_path
Pilihan yang digunakan adalah
- Bendera -u_ menunjukkan bahwa MySQL username akan mengikuti
- Bendera $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 0 menunjukkan bahwa kita harus diminta untuk $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 1 terkait dengan username di atas
- $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 3 tentu saja merupakan nama database yang akan diekspor
- Simbol $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 4 adalah direktif Unix untuk $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 5, yang memungkinkan perintah Unix untuk menampilkan hasil teks dari perintah yang dikeluarkan ke lokasi lain. Dalam hal ini, lokasi keluaran tersebut adalah jalur file, ditentukan oleh $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 6
Catatan. Biasanya disarankan untuk memasukkan jalur dan nama file yang sepenuhnya memenuhi syarat untuk $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 6, sehingga file yang dihasilkan dibuat tepat di tempat yang Anda inginkan
Misalnya, untuk mengekspor database $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: _8 sebagai pengguna $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 9 ke direktori $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: 0, kita dapat menggunakan perintah berikut
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: _
Setelah memasukkan kata sandi kami saat diminta di atas, perintah ini kemudian membuat file cadangan kami dengan akhiran $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: 1 (yang sepenuhnya opsional tetapi disarankan) di direktori yang sesuai
Secara default, mysqldump_ tidak akan menyimpan perintah yang mencoba mengubah keberadaan database aktual. Sebagai gantinya, secara default, hanya $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: _3 aktual (dan datanya masing-masing) yang disimpan dan dengan demikian akan disiapkan untuk impor nanti menggunakan file ini. Jika Anda memerlukan kemampuan untuk mengekspor (dan kemudian membuat ulang) satu database lagi, baca bendera di dokumentasi resmi
Mengimpor Ke MySQL
Sekarang setelah Anda mempelajari cara mengekspor cadangan database MySQL, kami akan menjelajahi cara membalikkan proses dan mengimpor cadangan ke database yang sudah ada
Seperti yang Anda bayangkan, untuk melengkapi perintah mysqldump_ yang digunakan untuk mengekspor, ada perintah serupa $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: 6 untuk mengimpor
Dalam kebanyakan kasus, mengimpor hanyalah masalah memberikan opsi yang hampir identik dengan perintah $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: 6. Untuk mengimpor file $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: _8 tersimpan yang dibuat sebelumnya, kami akan menggunakan banyak bendera yang sama dan banyak sintaks yang sama
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password:
Seperti sebelumnya, flag -u dan $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 0 diperlukan untuk autentikasi, yang kemudian diikuti dengan nama sudo1 untuk diimpor (dalam hal ini, kami menggunakan database produksi yang berbeda), lalu terakhir menentukan jalur yang sepenuhnya memenuhi syarat ke . Perlu diperhatikan juga bahwa $ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql Enter password: _6 tidak memerlukan simbol sudo4 atau $ mysqldump -u book_admin -p books > ~/backup/database/books.sql Enter password: 4 (STDIN/STDOUT) yang digunakan dengan mysqldump
Dengan itu, Anda telah mempelajari cara mengekspor/mencadangkan database yang ada, dan cara mengimpor/memulihkan data tersebut ke database yang sama atau bahkan berbeda