Latest web development tutorials

MySQL Export von Daten

MySQL Sie können SELECT ... INTO OUTFILE Anweisungen , um die Daten in eine einfache Textdatei zu exportieren.


Verwenden Sie SELECT ... INTO OUTFILE Aussagen zu Exportdaten

Die folgenden Beispiele werden wir die Daten in eine Datentabelle w3big_tbl /tmp/tutorials.txt-Datei zu exportieren:

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

Sie können die Ausgabe-Datenformat durch den Befehlsoptionen angegeben einstellen, werden die folgenden Beispiele im CSV-Format exportiert werden:

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

Im folgenden Beispiel wird eine Datei erzeugt, die durch Komma getrennte Werte. Dieses Format wird von verschiedenen Programmen verwendet.

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

SELECT ... INTO OUTFILE-Anweisung hat folgende Eigenschaften:

  • LOAD DATA INFILE SELECT ... INTO OUTFILE ist die inverse Operation, SELECT-Syntax. Um Daten in eine Datenbank in einer Datei zu schreiben, benutzen Sie SELECT ... INTO OUTFILE, um die Datei wieder in die Datenbank, verwenden Sie LOAD DATA INFILE zu lesen.
  • SELECT ... INTO OUTFILE 'file_name' Form von SELECT Zeilen können schreiben Sie eine Datei ausgewählt werden. Die Datei wird auf dem Server-Host erstellt, so dass Sie die Berechtigung FILE, um die Syntax zu verwenden.
  • Der Ausgang ist nicht eine Datei, die bereits vorhanden ist. Die Datei verhindern, dass Daten manipuliert werden.
  • Sie benötigen ein Login-Account-Server haben, um die Datei abzurufen. Andernfalls SELECT ... INTO OUTFILE wird keine Rolle spielen.
  • In UNIX, nachdem die Datei erstellt wird, ist lesbar Privilegien im Besitz von MySQL-Server. Das bedeutet, dass, obwohl Sie die Datei lesen kann, kann jedoch nicht gelöscht werden.

Exportieren von Daten wie die ursprüngliche Tabelle

mysqldump mysql wird verwendet, um die Utility-Datenbank zu drehen gespeichert wird. Es stellt vor allem ein SQL-Skript, das den Befehl enthält die Datenbank von Grund auf notwendig CREATE TABLE INSERT und so weiter neu zu erstellen.

Mit mysqldump Daten exportieren --tab Option erfordert das Verzeichnis in der Exportdatei angegeben angeben, muss das Objekt geschrieben werden.

Im folgenden Beispiel wird die Datentabelle w3big_tbl in das Verzeichnis / tmp-Verzeichnis zu exportieren:

$ mysqldump -u root -p --no-create-info \
            --tab=/tmp w3big w3big_tbl
password ******

Exportieren von Daten in SQL-Format

Export SQL-Daten in das angegebene Format, wie folgt:

$ mysqldump -u root -p w3big w3big_tbl > dump.txt
password ******

Inhaltsdateien von dem obigen Befehl wie folgt erstellt:

-- MySQL dump 8.23
--
-- Host: localhost    Database: w3big
---------------------------------------------------------
-- Server version       3.23.58

--
-- Table structure for table `w3big_tbl`
--

CREATE TABLE w3big_tbl (
  w3big_id int(11) NOT NULL auto_increment,
  w3big_title varchar(100) NOT NULL default '',
  w3big_author varchar(40) NOT NULL default '',
  submission_date date default NULL,
  PRIMARY KEY  (w3big_id),
  UNIQUE KEY AUTHOR_INDEX (w3big_author)
) TYPE=MyISAM;

--
-- Dumping data for table `w3big_tbl`
--

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

Wenn Sie Daten benötigen für die gesamte Datenbank zu exportieren, können Sie den folgenden Befehl verwenden:

$ mysqldump -u root -p w3big > database_dump.txt
password ******

Wenn Sie benötigen, um alle Datenbanken zu sichern, können Sie den folgenden Befehl verwenden:

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

--all-databases Option wurde in MySQL 3.23.12 oder später hinzugefügt.

Diese Methode kann verwendet werden, um Datenbank-Backup-Strategie zu implementieren.


Das Datenblatt und Kopie der Datenbank auf einen anderen Host

Wenn Sie Daten auf anderen MySQL-Server zu kopieren müssen, können Sie den Namen der Datenbank und Datentabellen in der mysqldump-Befehl angeben.

Führen Sie den folgenden Befehl auf dem Quell-Host, sichern Sie Daten zu dump.txt Datei:

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

Wenn die vollständige Sicherung der Datenbank, brauchen Sie keinen bestimmten Tabellennamen zu verwenden.

Wenn Sie die Datenbank in MySQL-Server sichern möchten, können Sie den folgenden Befehl verwenden, verwenden Sie den folgenden Befehl Sie müssen die Datenbank, um sicherzustellen, erstellt wurde:

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

Der obige Befehl wird in der Pipeline verwendet, um die Daten in den angegebenen Remote-Host zu exportieren.