MySQL - Veritabanı Dışa Aktarma
Bir tablo verilerini bir metin dosyasına dışa aktarmanın en basit yolu, SELECT...INTO OUTFILE Bir sorgu sonucunu doğrudan sunucu ana bilgisayarındaki bir dosyaya aktaran ifade.
SELECT ... INTO OUTFILE Deyimi ile Verileri Dışa Aktarma
Bu ifadenin sözdizimi, normal bir SELECT ile komut INTO OUTFILE filenamesonunda. Varsayılan çıktı formatı LOAD DATA komutu ile aynıdır. Dolayısıyla, aşağıdaki ifade,tutorials_tbl masa içine /tmp/tutorials.txt sekmeyle ayrılmış, satır besleme ile sonlandırılmış bir dosya olarak.
mysql> SELECT * FROM tutorials_tbl
-> INTO OUTFILE '/tmp/tutorials.txt';
Sütun ve kayıtların nasıl alıntı yapılacağını ve sınırlandırılacağını belirtmek için çeşitli seçenekleri kullanarak çıktı biçimini değiştirebilirsiniz. Tutorial_tbl tablosunu CRLF ile sonlandırılmış satırlarla CSV formatında dışa aktarmak için aşağıdaki kodu kullanın.
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
-> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
-> LINES TERMINATED BY '\r\n';
SELECT ... INTO OUTFILE aşağıdaki özelliklere sahiptir -
Çıktı dosyası doğrudan MySQL sunucusu tarafından oluşturulur, bu nedenle dosya adı, dosyanın sunucu ana bilgisayarında nereye yazılmasını istediğinizi belirtmelidir. İfadenin YEREL versiyonu yoktur.LOCAL versiyonu LOAD DATA.
Sahip olmalısın MySQL FILE yürütme ayrıcalığı SELECT ... INTO Beyan.
Çıktı dosyası halihazırda mevcut olmamalıdır. Bu, MySQL'in önemli olabilecek dosyaları bozmasını engeller.
Sunucu ana bilgisayarında bir oturum açma hesabınız olmalı veya dosyayı bu ana bilgisayardan almanın bir yolu olmalıdır. Aksi takdirdeSELECT ... INTO OUTFILE komutun büyük olasılıkla sizin için bir değeri olmayacaktır.
UNIX altında dosya oluşturulur world readableve MySQL sunucusuna aittir. Bu, dosyayı okuyabilecek olmanıza rağmen silemeyebileceğiniz anlamına gelir.
Tabloları Ham Veri Olarak Dışa Aktarma
mysqldumpprogramı, tabloları ve veritabanlarını kopyalamak veya yedeklemek için kullanılır. Tablo çıktısını birRaw Datafile veya bir dizi olarak INSERT tablodaki kayıtları yeniden oluşturan ifadeler.
Bir tabloyu veri dosyası olarak dökmek için, bir --tab MySQL sunucusunun dosyayı yazmasını istediğiniz dizini gösteren seçenek.
Örneğin, tutorials_tbl masadan TUTORIALS veritabanındaki bir dosyaya /tmp dizin, aşağıda gösterildiği gibi bir komut kullanın.
$ mysqldump -u root -p --no-create-info \
--tab=/tmp tutorials tutorials_tbl
password ******
Tablo İçeriklerini veya Tanımları SQL Formatında Dışa Aktarma
Bir tabloyu SQL formatında bir dosyaya aktarmak için aşağıda gösterilen komutu kullanın.
$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
password ******
Bu, aşağıda gösterildiği gibi içeriğe sahip bir dosya oluşturacaktır.
-- 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');
Birden çok tabloyu dökmek için, hepsini veritabanı adı bağımsız değişkeniyle birlikte adlandırın. Veritabanının tamamını dökmek için, aşağıdaki kod bloğunda gösterildiği gibi herhangi bir tabloyu veritabanından sonra adlandırmayın.
$ mysqldump -u root -p TUTORIALS > database_dump.txt
password ******
Ana makinenizde bulunan tüm veritabanlarını yedeklemek için aşağıdaki kodu kullanın.
$ mysqldump -u root -p --all-databases > database_dump.txt
password ******
--All-databases seçeneği MySQL 3.23.12 sürümünde mevcuttur. Bu yöntem, bir veritabanı yedekleme stratejisi uygulamak için kullanılabilir.
Tabloları veya Veritabanlarını Başka Bir Ana Bilgisayara Kopyalama
Tabloları veya veritabanlarını bir MySQL sunucusundan diğerine kopyalamak istiyorsanız, mysqldump veritabanı adı ve tablo adı ile.
Kaynak ana bilgisayarda aşağıdaki komutu çalıştırın. Bu, tüm veritabanınıdump.txt dosya.
$ mysqldump -u root -p database_name table_name > dump.txt
password *****
Yukarıda açıklandığı gibi belirli bir tablo adı kullanmadan tüm veritabanını kopyalayabilirsiniz.
Şimdi, başka bir ana bilgisayarda ftp dump.txt dosyasını açın ve aşağıdaki komutu kullanın. Bu komutu çalıştırmadan önce, hedef sunucuda veritabanı_adı oluşturduğunuzdan emin olun.
$ mysql -u root -p database_name < dump.txt
password *****
Bunu bir ara dosya kullanmadan gerçekleştirmenin başka bir yolu, mysqldump çıktısını doğrudan ağ üzerinden uzak MySQL sunucusuna göndermektir. Kaynak veritabanının bulunduğu ana bilgisayardan her iki sunucuya da bağlanabiliyorsanız, aşağıdaki komutu kullanın (Her iki sunucuya da erişiminiz olduğundan emin olun).
$ mysqldump -u root -p database_name \
| mysql -h other-host.com database_name
Mysqldump'ta, komutun yarısı yerel sunucuya bağlanır ve döküm çıktısını boruya yazar. Komutun kalan yarısı, diğer-ana bilgisayar.com'daki uzak MySQL sunucusuna bağlanır. Giriş için boruyu okur ve her bir ifadeyi diğer-barındırıcı.com sunucusuna gönderir.