Linux MySQL veritabanından veri dosyaları nasıl dışa aktarılır?csv deyimini dışa aktar komutu

Linux MySQL veritabanıVeri dosyaları nasıl dışa aktarılır?csv deyimini dışa aktar komutu

MySQLveri verilerini dışa aktar

MySQL'de kullanabilirsinizSEÇİN ... OUTFILE İÇİNDEverileri bir metin dosyasına dışa aktarmak için ifade.


SELECT ... INTO OUTFILE deyimini kullanarak verileri dışa aktarın

Aşağıdaki örnekte veri tablosunu /tmp/tutorials.txt dosyasına aktaracağız:

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

Komut seçenekleri aracılığıyla belirtilen veri çıkışı biçimini ayarlayabilirsiniz.Aşağıdaki örnek, CSV biçimini dışa aktarmak içindir:

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

Aşağıdaki örnekte, virgülle ayrılmış değerlerle bir dosya oluşturulur.Bu format birçok program tarafından kullanılabilir.

SELECT a b a + b INTO OUTFILE '/tmp/result.text'FIELDS 
TERMINATED BY ',' OPTIONALLY ENCLOSED BY '''行
终止'\ 
n'FROM test_table ;

SELECT ... INTO OUTFILE deyimi aşağıdaki özniteliklere sahiptir:

  • LOAD DATA INFILE, SELECT ... INTO OUTFILE, SELECT sözdiziminin ters işlemidir.Bir veritabanından bir dosyaya veri yazmak için SELECT ... INTO OUTFILE'ı kullanın ve dosyayı veritabanına geri okumak için LOAD DATA INFILE'ı kullanın.
  • SELECT ... INTO OUTFILE 'dosya_adı' biçimindeki bir SELECT, seçilen satırları bir dosyaya yazabilir.Dosya, sunucu ana bilgisayarında oluşturulur, dolayısıyla bu sözdizimini kullanmak için FILE iznine sahip olmanız gerekir.
  • Çıktı mevcut bir dosya olamaz.Dosya verilerinin kurcalanmasını önleyin.
  • Dosyaları almak için sunucuda oturum açmak için bir hesabınızın olması gerekiyor mu?Aksi takdirde SELECT ... INTO OUTFILE'ın hiçbir etkisi olmayacaktır.
  • UNIX'te dosya okunabilir olacak şekilde oluşturulur ve izinler MySQL sunucusuna aittir.Bu, dosyayı okuyabildiğiniz halde silemeyeceğiniz anlamına gelir.

Tabloyu ham veri olarak dışa aktar

Temel olarak, veritabanını sıfırdan yeniden oluşturmak için gereken CREATE TABLE INSERT vb. komutlarını içeren bir SQL betiği üretir.

Verileri mysqldump kullanarak dışa aktarmak için, dışa aktarma dosyası tarafından belirtilen dizini belirtmek üzere –tab seçeneğini kullanmanız gerekir ve hedef yazılabilir olmalıdır.

Aşağıdaki örnek, chenweiliang_tbl veri tablosunu /tmp dizinine aktarır:

$ mysqldump - u root - p - no - create - info
             - tab = / tmp chenweiliang chenweiliang_tbl
密码******

Verileri SQL formatında dışa aktarma

Verileri SQL formatında belirtilen dosyaya aşağıdaki gibi dışa aktarın:

$ mysqldump - u root - p chenweiliang chenweiliang_tbl > dump 文本 
密码******

Yukarıdaki komutla oluşturulan dosyanın içeriği aşağıdaki gibidir:

- MySQL 转储8.23 - - 主机localhost     数据库chenweiliang
 ----------------------------------- ---------------------- - 服务器版本        3.23 58   

 
 

- - 结构`chenweiliang_tbl` -
 


CREATE TABLE chenweiliang_tbl 
  chenweiliang_id INT 11 NOT NULL的auto_increment 
  chenweiliang_title VARCHAR 100 NOT NULL 默认'' 
  chenweiliang_author VARCHAR 40 NOT NULL 默认'' 
  submission_date日期默认NULL 
  PRIMARY KEY   chenweiliang_id ),
  UNIQUE KEY AUTHOR_INDEX chenweiliang_author TYPE = MyISAM ;  


- - 转储数据`chenweiliang_tbl` -
 


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

Tüm veritabanının verilerini dışa aktarmanız gerekirse, aşağıdaki komutu kullanabilirsiniz:

$ mysqldump - u root - p chenweiliang > database_dump 文本
密码******

Tüm veritabanlarını yedeklemeniz gerekiyorsa, aşağıdaki komutu kullanabilirsiniz:

$ mysqldump - u root - p - all - databases > database_dump 文本
密码******

--all-databases seçeneği MySQL 3.23.12 ve sonrasında eklenmiştir.

Bu yöntem, bir veritabanı yedekleme stratejisi uygulamak için kullanılabilir.


Veri tablolarını ve veritabanlarını diğer ana bilgisayarlara kopyalayın

Verileri başka bir MySQL sunucusuna kopyalamanız gerekiyorsa, mysqldump komutunda veritabanı adını ve tablosunu belirtebilirsiniz.

Verileri dump.txt dosyasına yedeklemek için kaynak ana bilgisayarda aşağıdaki komutu yürütün:

$ mysqldump - u root - p database_name table_name > dump 文本 
密码*****

Veritabanını tam olarak yedeklerseniz, belirli bir tablo adı kullanmanıza gerek yoktur.

Yedek veritabanını MySQL sunucusuna aktarmanız gerekiyorsa, aşağıdaki komutu kullanabilirsiniz, aşağıdaki komutu kullanarak veritabanının oluşturulduğunu onaylamanız gerekir:

$ mysql - u root - p database_name < dump 文本 
密码*****
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:</ p > 
$ mysqldump的- ü根- p DATABASE_NAME \
        | mysql - h other - host com database_name

Yukarıdaki komut, dışa aktarılan verileri belirtilen uzak ana bilgisayara almak için bir kanal kullanır.

发表 评论

E-posta adresiniz yayımlanmayacaktır. 必填 项 已 用 * 标注

En gidin