MySQL - Veritabanını İçe Aktarma - Kurtarma Yöntemleri
MySQL'de verileri önceden yedeklenmiş bir dosyadan MySQL veritabanına yüklemenin iki basit yolu vardır.
LOAD DATA ile Verileri İçe Aktarma
MySQL, toplu veri yükleyici görevi gören bir LOAD DATA deyimi sağlar. İşte bir dosyayı okuyan örnek bir ifadedump.txt mevcut dizininizden ve tabloya yükler mytbl mevcut veritabanında.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
Eğer LOCAL anahtar sözcüğü mevcut değilse, MySQL veri dosyasını sunucu ana bilgisayarında arar. looking into absolute pathname, dosya sisteminin kökünden başlayarak dosyanın konumunu tam olarak belirtir. MySQL, dosyayı verilen konumdan okur.
Varsayılan olarak, LOAD DATA veri dosyalarının satır beslemeleriyle (yeni satırlar) sonlandırılan satırlar içerdiğini ve bir satırdaki veri değerlerinin sekmelerle ayrıldığını varsayar.
Bir dosya biçimini açıkça belirtmek için bir FIELDS bir satırdaki alanların özelliklerini açıklamak için yan tümce ve bir LINESsatır sonu sırasını belirtmek için yan tümce. AşağıdakiLOAD DATA ifadesi, veri dosyasının iki nokta üst üste ile ayrılmış değerler ve satır başları ve yeni satır karakteri ile sonlandırılan satırlar içerdiğini belirtir.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
LOAD DATA komutu, veri dosyasındaki sütunların tablodaki sütunlarla aynı sıraya sahip olduğunu varsayar. Bu doğru değilse, veri dosyası sütunlarının hangi tablo sütunlarına yüklenmesi gerektiğini gösteren bir liste belirtebilirsiniz. Tablonuzun a, b ve c sütunlarına sahip olduğunu, ancak veri dosyasındaki ardışık sütunların b, c ve a sütunlarına karşılık geldiğini varsayalım.
Dosyayı aşağıdaki kod bloğunda gösterildiği gibi yükleyebilirsiniz.
mysql> LOAD DATA LOCAL INFILE 'dump.txt'
-> INTO TABLE mytbl (b, c, a);
Mysqlimport ile Verileri İçe Aktarma
MySQL ayrıca adlı bir yardımcı program içerir mysqlimport LOAD DATA etrafında bir sarmalayıcı görevi görür, böylece girdi dosyalarını doğrudan komut satırından yükleyebilirsiniz.
Veri yüklemek için dump.txt içine mytbl, UNIX isteminde aşağıdaki komutu kullanın.
$ mysqlimport -u root -p --local database_name dump.txt
password *****
Eğer kullanırsan mysqlimport, komut satırı seçenekleri biçim belirleyicilerini sağlar. mysqlimport önceki ikisine karşılık gelen komutlar LOAD DATA deyimleri aşağıdaki kod bloğunda gösterildiği gibi görünür.
$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
--lines-terminated-by = "\r\n" database_name dump.txt
password *****
Tüm seçenekleri veritabanı adından önce gelmesi dışında, seçenekleri belirttiğiniz sıra mysqlimport için önemli değildir.
mysqlimport ifadesi kullanır --columns sütun sırasını belirtme seçeneği -
$ mysqlimport -u root -p --local --columns=b,c,a \
database_name dump.txt
password *****
Alıntıları ve Özel Karakterleri İşleme
FIELDS yan tümcesi, diğer biçim seçeneklerini belirtebilir. TERMINATED BY. Varsayılan olarak LOAD DATA, değerlerin tırnaksız olduğunu varsayar ve ters eğik çizgiyi (\) özel karakterler için bir çıkış karakteri olarak yorumlar. Değeri tırnak içine alarak açıkça belirtmek için,ENCLOSED BYkomut. MySQL, girdi işleme sırasında bu karakteri veri değerlerinin sonlarından çıkarır. Varsayılan kaçış karakterini değiştirmek için kullanınESCAPED BY.
Alıntı karakterlerinin veri değerlerinden çıkarılması gerektiğini belirtmek için ENCLOSED BY belirttiğinizde, tırnak karakterini tam anlamıyla veri değerlerine iki katına çıkararak veya ondan önce kaçış karakteriyle dahil etmek mümkündür.
Örneğin, tırnak ve çıkış karakterleri "ve \ ise, giriş değeri "a""b\"c" olarak yorumlanacak a"b"c.
İçin mysqlimporttırnak ve kaçış değerlerini belirtmek için karşılık gelen komut satırı seçenekleri --fields-enclosed-by ve --fields-escaped-by.