MySQL - Ekspor Database

Cara paling sederhana untuk mengekspor data tabel menjadi file teks adalah dengan menggunakan SELECT...INTO OUTFILE pernyataan yang mengekspor hasil kueri langsung ke file di host server.

Mengekspor Data dengan Pernyataan SELECT ... INTO OUTFILE

Sintaks untuk pernyataan ini menggabungkan reguler SELECT perintah dengan INTO OUTFILE filenamepada akhirnya. Format keluaran default sama seperti untuk perintah LOAD DATA. Jadi, pernyataan berikut mengekspor filetutorials_tbl tabel menjadi /tmp/tutorials.txt sebagai file yang dibatasi tab, baris feed-dihentikan.

mysql> SELECT * FROM tutorials_tbl 
   -> INTO OUTFILE '/tmp/tutorials.txt';

Anda dapat mengubah format output menggunakan berbagai opsi untuk menunjukkan cara mengutip dan membatasi kolom dan rekaman. Untuk mengekspor tabel tutorial_tbl dalam format CSV dengan baris yang diakhiri CRLF, gunakan kode berikut.

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
   -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
   -> LINES TERMINATED BY '\r\n';

Itu SELECT ... INTO OUTFILE memiliki properti berikut -

  • File output dibuat langsung oleh server MySQL, jadi nama file harus menunjukkan di mana Anda ingin file tersebut ditulis pada host server. Tidak ada versi LOKAL dari pernyataan yang analog denganLOCAL versi dari LOAD DATA.

  • Anda harus memiliki MySQL FILE hak istimewa untuk mengeksekusi SELECT ... INTO pernyataan.

  • File keluaran harus belum ada. Ini mencegah MySQL dari clobbering file yang mungkin penting.

  • Anda harus memiliki akun login di host server atau beberapa cara untuk mengambil file dari host itu. Jika tidak, fileSELECT ... INTO OUTFILE perintah kemungkinan besar tidak akan ada nilainya bagi Anda.

  • Di bawah UNIX, file dibuat world readabledan dimiliki oleh server MySQL. Artinya, meskipun Anda dapat membaca file tersebut, Anda mungkin tidak dapat menghapusnya.

Mengekspor Tabel sebagai Data Mentah

Itu mysqldumpProgram digunakan untuk menyalin atau membuat cadangan tabel dan database. Itu dapat menulis keluaran tabel baik sebagaiRaw Datafile atau sebagai satu set INSERT pernyataan yang membuat ulang record dalam tabel.

Untuk membuang tabel sebagai file data, Anda harus menentukan file --tab opsi yang menunjukkan direktori tempat Anda ingin server MySQL untuk menulis file.

Misalnya, untuk membuang file tutorials_tbl tabel dari TUTORIALS database ke file di /tmp direktori, gunakan perintah seperti yang ditunjukkan di bawah ini.

$ mysqldump -u root -p --no-create-info \
   --tab=/tmp tutorials tutorials_tbl
password ******

Mengekspor Isi atau Definisi Tabel dalam Format SQL

Untuk mengekspor tabel dalam format SQL ke file, gunakan perintah yang ditunjukkan di bawah ini.

$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
password ******

Ini akan membuat file yang memiliki konten seperti yang ditunjukkan di bawah ini.

-- MySQL dump 8.23
--
-- Host: localhost    Database: TUTORIALS
---------------------------------------------------------
-- Server version       3.23.58

--
-- Table structure for table `tutorials_tbl`
--

CREATE TABLE tutorials_tbl (
   tutorial_id int(11) NOT NULL auto_increment,
   tutorial_title varchar(100) NOT NULL default '',
   tutorial_author varchar(40) NOT NULL default '',
   submission_date date default NULL,
   PRIMARY KEY  (tutorial_id),
   UNIQUE KEY AUTHOR_INDEX (tutorial_author)
) TYPE = MyISAM;

--
-- Dumping data for table `tutorials_tbl`
--

INSERT INTO tutorials_tbl 
   VALUES (1,'Learn PHP','John Poul','2007-05-24');
INSERT INTO tutorials_tbl 
   VALUES (2,'Learn MySQL','Abdul S','2007-05-24');
INSERT INTO tutorials_tbl 
   VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');

Untuk membuang beberapa tabel, beri nama semuanya diikuti dengan argumen nama database. Untuk membuang seluruh database, jangan beri nama tabel apa pun setelah database seperti yang diperlihatkan di blok kode berikut.

$ mysqldump -u root -p TUTORIALS > database_dump.txt
password ******

Untuk mencadangkan semua database yang tersedia di host Anda, gunakan kode berikut.

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

Opsi --all-databases tersedia di versi MySQL 3.23.12. Metode ini dapat digunakan untuk mengimplementasikan strategi backup database.

Menyalin Tabel atau Database ke Host Lain

Jika Anda ingin menyalin tabel atau database dari satu server MySQL ke server lain, gunakan mysqldump dengan nama database dan nama tabel.

Jalankan perintah berikut di host sumber. Ini akan membuang database lengkap kedump.txt mengajukan.

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

Anda dapat menyalin database lengkap tanpa menggunakan nama tabel tertentu seperti yang dijelaskan di atas.

Sekarang, file dump.txt ftp di host lain dan gunakan perintah berikut. Sebelum menjalankan perintah ini, pastikan Anda telah membuat database_name di server tujuan.

$ mysql -u root -p database_name < dump.txt
password *****

Cara lain untuk melakukannya tanpa menggunakan file perantara adalah dengan mengirim output mysqldump langsung melalui jaringan ke server MySQL jarak jauh. Jika Anda dapat menyambungkan ke kedua server dari host tempat database sumber berada, gunakan perintah berikut (Pastikan Anda memiliki akses di kedua server).

$ mysqldump -u root -p database_name \
   | mysql -h other-host.com database_name

Di mysqldump, setengah dari perintah terhubung ke server lokal dan menulis keluaran dump ke pipa. Setengah sisa dari perintah tersebut terhubung ke server MySQL jarak jauh di other-host.com. Itu membaca pipa untuk input dan mengirim setiap pernyataan ke server other-host.com.