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.