it-swarm.com.de

Einzelne Datenbank aus --all-database dump importieren

Ist es möglich, eine einzelne Datenbank aus einem mysqldump --all-database zu importieren? Ich schätze, ich kann die Datei manuell ändern, frage mich aber, ob es dafür Befehlszeilenoptionen gibt.

Ich ziehe Server um und habe viele Datenbanken, von denen ich die meisten derzeit nicht benötige oder möchte, aber ich möchte die Option haben, bei Bedarf eine einzelne wiederherzustellen.

64
savageguy

Die Ausgabe von mysqldump ist nur eine Menge von SQL Anweisungen.

Sie können die gewünschte Datenbank in der Befehlszeile bereitstellen und die Befehle für die anderen Datenbanken überspringen, indem Sie Folgendes verwenden:

mysql -D mydatabase -o mydatabase < dump.sql

Dadurch werden die Befehle nur ausgeführt, wenn mydatabase verwendet wird

71
Quassnoi

Sie können den folgenden Befehl verwenden:

mysql -u root -p --one-database destdbname < alldatabases.sql

Wobei destdbname Ihre gewünschte Datenbank ist, die Sie wiederherstellen möchten.

Eine andere Option, die meiner Meinung nach viel sicherer ist, ist das Extrahieren der DB aus einem --all-databases dump. Beispiel:

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql

Ersetzen Sie dbname durch den gewünschten Datenbanknamen. alldatabases.sql ist der Name Ihrer SQL-Dump-Datei. Auf diese Weise haben Sie die getrennte Datenbank in der Datei und können sie mit einem einfachen mysql-Befehl wiederherstellen.

Viel Glück

(Danksagung geht an: Darren Mothersele - siehe seine Seite )

73
Hetzbh