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 MySQLusername
wird folgen. - Das
-p
Flag zeigt an, dass wir nach dempassword
gefragt werden sollten mit dem obigenusername
verknüpft . database_name
ist natürlich der genaue Name der zu exportierenden Datenbank.- Der
>
Symbol ist eine Unix-Direktive fürSTDOUT
, wodurch Unix-Befehle die Textergebnisse des ausgegebenen Befehls an einem anderen Ort ausgeben können. In diesem Fall ist dieser Ausgabeort ein Dateipfad, der durchoutput_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.