Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Importieren aus und Exportieren in Dateien über die MySQL-Befehlszeile

Um mit MySQL zu exportieren oder zu importieren, melden Sie sich zunächst bei Ihrem Server an, vorzugsweise mit sudo (Root-)Zugriff.

Exportieren aus MySQL

Das beste Tool zum Exportieren einer MySQL-Datenbank in eine Textdatei ist mysqldump .

So verwenden Sie mysqldump müssen Sie die Anmeldeinformationen eines geeigneten MySQL user kennen die über die erforderlichen Berechtigungen verfügt, um die betreffende Datenbank zu exportieren.

Mit diesen Informationen geben Sie mysqldump ein Befehl mit den entsprechenden Flags und Optionen:

$ mysqldump -u my_username -p database_name > output_file_path

Die verwendeten Optionen sind:

  • Das -u Flag zeigt an, dass der MySQL username wird folgen.
  • Das -p Flag zeigt an, dass wir nach dem password gefragt werden sollten mit dem obigen username verknüpft .
  • database_name ist natürlich der genaue Name der zu exportierenden Datenbank.
  • Der > Symbol ist eine Unix-Direktive für STDOUT , wodurch Unix-Befehle die Textergebnisse des ausgegebenen Befehls an einem anderen Ort ausgeben können. In diesem Fall ist dieser Ausgabeort ein Dateipfad, der durch output_file_path angegeben wird .

Hinweis:Es ist generell ratsam, den vollqualifizierten Pfad und Dateinamen für den output_file_path einzugeben , sodass die resultierende Datei genau dort generiert wird, wo Sie sie haben möchten.

Zum Beispiel, um die books zu exportieren Datenbank als book_admin Benutzer zur ~/backup/database Verzeichnis, könnten wir den folgenden Befehl verwenden:

$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:

Nachdem Sie unser Passwort eingegeben haben, wenn Sie oben dazu aufgefordert werden, erstellt dieser Befehl dann unsere Sicherungsdatei mit einer .sql Suffix (das völlig optional, aber empfehlenswert ist) im entsprechenden Verzeichnis.

Standardmäßig mysqldump nicht Speicherbefehle, die versuchen, die Existenz der tatsächlichen Datenbank zu ändern. Stattdessen standardmäßig nur tatsächliche tables (und die dazugehörigen Daten) gespeichert und somit für den späteren Import mit dieser Datei vorbereitet. Wenn Sie die Möglichkeit benötigen, eine weitere Datenbank zu exportieren (und später neu zu erstellen), lesen Sie die --databases Flagge in der offiziellen Dokumentation.

In MySQL importieren

Nachdem Sie nun gelernt haben, wie Sie ein Backup einer MySQL-Datenbank exportieren, untersuchen wir, wie Sie den Vorgang umkehren und importieren das Backup in eine bestehende Datenbank.

Wie Sie sich vielleicht vorstellen können, um mysqldump zu ergänzen Befehl zum Exportieren verwendet wird, gibt es einen ähnlichen mysqlimport Befehl zum Importieren.

In den meisten Fällen besteht der Import lediglich darin, praktisch identische zu übergeben Optionen zum mysqlimport Befehl. Um unsere gespeicherte books.sql zu importieren Bei einer zuvor erstellten Datei würden wir viele der gleichen Flags und fast die gleiche Syntax verwenden.

$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:

Wie zuvor das -u und -p Für die Authentifizierung werden Flags benötigt, denen dann der Name der database folgt in die importiert werden soll (in diesem Fall verwenden wir eine andere Produktionsdatenbank), und geben Sie schließlich den vollständig qualifizierten Pfad zur SQL-Dumpdatei an, die unsere Importdaten enthält, ~/backup/database/books.sql . Es ist auch erwähnenswert, dass mysqlimport erfordert nicht den < oder > (STDIN/STDOUT)-Symbole, die mit mysqldump verwendet wurden .

Damit haben Sie gelernt, wie Sie eine vorhandene Datenbank exportieren/sichern und diese Daten dann in dieselbe oder sogar eine andere Datenbank importieren/wiederherstellen.