Ist es möglich, eine einzelne Datenbank aus einem --all-database mysqldump zu importieren? Ich denke, ich kann die Datei manuell ändern, frage mich aber, ob es dafür Befehlszeilenoptionen gibt.
Ich bewege Server und habe viele Datenbanken, von denen ich die meisten derzeit nicht benötige oder möchte, aber die Option haben möchte, bei Bedarf eine einzelne wiederherzustellen.
mysqldump --all-databases
, enthält die Ausgabe von mysqldumpDROP DATABASE IF EXISTS dbname; CREATE DATABASE dbname; USE dbname;
für jede Datenbank in der MySQL-Instanz, einschließlich des MySQL-Schemas. Bitte lesen Sie die mysqldump-Dokumentation: dev.mysql.com/doc/refman/5.5/en/… . Das bedeutet, dass jede Datenbank gnadenlos überschrieben wird. Können Sie den Beweis erbringen, dass alle Datenbanken bis auf eine übersprungen werden? HINWEIS: Sie können dies mit mysqlbinlog für binäre Protokolle tun.Sie können den folgenden Befehl verwenden:
Wo
destdbname
ist Ihre gewünschte Datenbank, die Sie wiederherstellen möchten?Eine andere Option, die meiner Meinung nach viel sicherer ist, besteht darin, die Datenbank aus einem
--all-databases
Speicherauszug zu extrahieren . 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 separate Datenbank in der Datei und können sie dann mit einem einfachen Befehl mysql wiederherstellen.(Credits gehen an: Darren Mothersele - siehe seine Seite )
quelle
--one-database
?