MySQL - Impor Database - Metode Pemulihan
Ada dua cara sederhana di MySQL untuk memuat data ke database MySQL dari file cadangan sebelumnya.
Mengimpor Data dengan LOAD DATA
MySQL menyediakan pernyataan LOAD DATA yang berfungsi sebagai pemuat data massal. Berikut adalah contoh pernyataan yang membaca filedump.txt dari direktori Anda saat ini dan memuatnya ke dalam tabel mytbl di database saat ini.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
Jika LOCAL kata kunci tidak ada, MySQL mencari datafile pada host server menggunakan looking into absolute pathname, yang sepenuhnya menentukan lokasi file, dimulai dari root sistem file. MySQL membaca file dari lokasi yang ditentukan.
Secara default, LOAD DATA mengasumsikan bahwa file data berisi baris yang diakhiri oleh umpan baris (baris baru) dan nilai data dalam baris dipisahkan oleh tab.
Untuk menentukan format file secara eksplisit, gunakan file FIELDS klausa untuk menggambarkan karakteristik bidang dalam satu baris, dan a LINESklausa untuk menentukan urutan akhir baris. PengikutLOAD DATA pernyataan menentukan bahwa datafile berisi nilai yang dipisahkan oleh titik dua dan garis diakhiri oleh carriage return dan karakter baris baru.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
Perintah LOAD DATA mengasumsikan kolom dalam datafile memiliki urutan yang sama dengan kolom di tabel. Jika itu tidak benar, Anda dapat menentukan daftar untuk menunjukkan kolom tabel di mana kolom datafile harus dimuat. Misalkan tabel Anda memiliki kolom a, b, dan c, tetapi kolom berturut-turut dalam file data sesuai dengan kolom b, c, dan a.
Anda dapat memuat file seperti yang ditunjukkan pada blok kode berikut.
mysql> LOAD DATA LOCAL INFILE 'dump.txt'
-> INTO TABLE mytbl (b, c, a);
Mengimpor Data dengan mysqlimport
MySQL juga menyertakan program utilitas bernama mysqlimport yang bertindak sebagai pembungkus LOAD DATA, sehingga Anda dapat memuat file input langsung dari baris perintah.
Untuk memuat data dari dump.txt ke mytbl, gunakan perintah berikut pada prompt UNIX.
$ mysqlimport -u root -p --local database_name dump.txt
password *****
Jika Anda menggunakan mysqlimport, opsi baris perintah menyediakan penentu format. Itumysqlimport perintah yang sesuai dengan dua sebelumnya LOAD DATA pernyataan terlihat seperti yang ditunjukkan pada blok kode berikut.
$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
--lines-terminated-by = "\r\n" database_name dump.txt
password *****
Urutan opsi yang Anda tentukan tidak menjadi masalah bagi mysqlimport, kecuali bahwa semuanya harus mendahului nama database.
Itu mysqlimport Pernyataan menggunakan --columns opsi untuk menentukan urutan kolom -
$ mysqlimport -u root -p --local --columns=b,c,a \
database_name dump.txt
password *****
Menangani Kutipan dan Karakter Khusus
Klausul FIELDS dapat menentukan opsi format lain selain TERMINATED BY. Secara default, LOAD DATA mengasumsikan bahwa nilai tidak dikutip dan menafsirkan garis miring terbalik (\) sebagai karakter pelolosan untuk karakter khusus. Untuk menunjukkan karakter kutipan nilai secara eksplisit, gunakanENCLOSED BYperintah. MySQL akan menghapus karakter itu dari ujung nilai data selama pemrosesan input. Untuk mengubah karakter escape default, gunakanESCAPED BY.
Saat Anda menentukan TERTUTUP OLEH untuk menunjukkan bahwa karakter kutipan harus dihilangkan dari nilai data, dimungkinkan untuk menyertakan karakter kutipan secara harfiah dalam nilai data dengan menggandakannya atau dengan mendahului dengan karakter pelolosan.
Misalnya, jika tanda kutip dan karakter escape adalah "dan \, nilai inputnya "a""b\"c" akan diartikan sebagai a"b"c.
Untuk mysqlimport, opsi baris perintah terkait untuk menentukan nilai kutipan dan pelolosan adalah --fields-enclosed-by dan --fields-escaped-by.