Cara termudah mengekspor data tabel ke file teks menggunakan SELECT … INTO OUTFILE bahwa ekspor hasil query langsung ke file pada server host.
Mengekspor Data dengan SELECT … Pernyataan INTO OUTFILE:
Sintaks untuk pernyataan ini menggabungkan SELECT INTO biasa dengan nama file OUTFILE di akhir. Format output default adalah sama seperti untuk LOAD DATA, sehingga pernyataan berikut ekspor tabel tutorials_tbl ke / tmp / tutorials.txt sebagai file tab-delimited, linefeed-dihentikan:
mysql> SELECT * FROM tutorials_tbl
-> INTO OUTFILE ‘/tmp/tutorials.txt';
Anda dapat mengubah format output menggunakan opsi untuk menunjukkan bagaimana untuk mengutip dan
membatasi kolom dan catatan. Untuk mengekspor tabel tutorial_tbl dalam format CSV dengan CRLF-garis diakhiri,
menggunakan pernyataan ini:
mysql> SELECT * FROM passwd INTO OUTFILE ‘/tmp/tutorials.txt’
-> FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘”‘
-> LINES TERMINATED BY ‘\r\n';
SELECT … INTO OUTFILE memiliki properti berikut:
- Output file dibuat secara langsung oleh server MySQL, sehingga nama file harus menunjukkan di mana Anda ingin file yang akan ditulis pada server host. Tidak ada versi LOKAL dari pernyataan analog ke versi LOKAL LOAD DATA.
- Anda harus memiliki hak istimewa FILE MySQL untuk mengeksekusi SELECT … INTO.
- File output tidak harus sudah ada. Hal ini mencegah MySQL dari clobbering file yang mungkin penting. Anda harus memiliki account login di host server atau beberapa cara untuk mengambil file dari host tersebut.
- Jika tidak, SELECT … INTO OUTFILE kemungkinan akan menjadi tidak bernilai bagi Anda.
- Di Unix, file yang menciptakan dunia dibaca dan dimiliki oleh server MySQL. Ini berarti bahwa walaupun Anda akan dapat membaca file tersebut, Anda mungkin tidak mampu untuk menghapusnya.
Mengekspor Tabel sebagai Data mentah:
Program mysqldump digunakan untuk menyalin atau cadangan tabel dan database. Hal ini dapat menulis output tabel baik sebagai datafile mentah, atau sebagai satu set pernyataan INSERT yang menciptakan catatan dalam tabel.
Sebagai contoh, untuk membuang tabel dari database tutorials_tbl tutorial untuk sebuah file di direktori / tmp, gunakan perintah seperti ini:
$ mysqldump -u root -p --no-create-info \ --tab=/tmp TUTORIALS tutorials_tbl password ******
Mengekspor Isi Table atau Definisi Format SQL:
Untuk mengekspor tabel dalam format SQL untuk file, gunakan perintah seperti ini:
$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
password ******
Ini akan membuat konten file memiliki sebagai berikut:
– 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 dump beberapa tabel, nama mereka semua mengikuti argumen nama database. Untuk dump seluruh database,
jangan nama apapun tabel setelah database sebagai berikut:
$ mysqldump -u root -p TUTORIALS > database_dump.txt password ******
$ mysqldump -u root -p --all-databases > database_dump.txt password ******
Metode ini dapat digunakan untuk menerapkan stretegy backup database.
Menyalin atau Tabel Database Host lain:
Jika Anda ingin menyalin tabel atau database dari satu server MySQL untuk lain kemudian menggunakan mysqldump dengan nama database dan nama tabel.
Jalankan perintah berikut pada host sumber. Ini akan dump database lengkap ke file dump.txt:
$ mysqldump -u root -p database_name table_name > dump.txt
password *****
Anda dapat menyalin database yang lengkap tanpa menggunakan nama tabel tertentu sebagai dijelaskan di atas.
Sekarang ftp file yang dump.txt pada host lain dan gunakan perintah berikut. Sebelum menjalankan perintah ini,
pastikan Anda telah membuat database_name pada server tujuan.
$ mysql -u root -p database_name < dump.txt
password *****
Cara lain untuk mencapai hal ini tanpa menggunakan file perantara adalah untuk mengirim output dari mysqldump
langsung melalui jaringan ke server MySQL jauh. Jika Anda dapat terhubung ke kedua server dari host dimana
database berada masak, gunakan perintah ini:
$ mysqldump -u root -p database_name \ states | mysql -h other-host.com database_name