webentwicklung-frage-antwort-db.com.de

mySQL wiederherstellen in andere Datenbank

Ich sichere meine Produktionsdatenbank mit dem folgenden Befehl:

mysqldump -u root --opt --skip-extended-insert --databases my_production_db

Die resultierende Dump-Datei enthält die folgenden Zeilen oben:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_production_db `;

Um die Datenbank an einem anderen Ziel wiederherzustellen, z. my_debvelopment_db Ich muss die Dump-Datei öffnen und die Bits bearbeiten, in denen die Datenbank benannt ist.

Dann laufe ich:

mysql -u root  -p <password> < mydumpfile

Ich habe keinen anderen Weg gefunden, es zu tun. 

Je größer die Datenbank wird, desto unpraktischer wird das.

Fehlt mir etwas? Kann ich nicht irgendwie angeben, wo ich die Datenbank wiederherstellen möchte? Benötige ich einen anderen Sicherungsbefehl?

17
giorgio

Wenn Sie die Option --databases löschen, aber weiterhin den Datenbanknamen angeben, erhalten Sie NICHT die Anweisungen zum Erstellen von Datenbanken. dh:

mysqldump -u root --opt --skip-extended-insert  my_production_db

Erstellen Sie auf Ihrem Entwicklungscomputer einfach eine Datenbank, in der Sie wiederherstellen möchten.

12
minaz

@minaz Antwort war gut, aber ich möchte noch etwas hinzufügen.

Das Problem wurde durch das Schlüsselwort --databases verursacht. Wenn Sie das Schlüsselwort nicht angeben, enthält es keine Inhalte zur Datenbankerstellung.

Dump ohne --databases Schlüsselwort.

mysqldump -u username -p database_name > dump.sql

Und stellen Sie es mit dem Namen der Zieldatenbank wieder her.

mysql -u username -p target_database_name < dump.sql

Dazu gibt es mehrere Möglichkeiten. Siehe das ähnliche Problem auf hier (dba.stackexchange).

47
lqez

Bei Windows xampp habe ich folgende Befehle verwendet, um dies zu erreichen

Export

mysqldump -u root -p mydb > mydb.sql

Einführen

mysql -u root -p mynewdb < mydb.sql
1
Muk

Wenn Sie bereits über einen Speicherauszug verfügen, können Sie die Befehle zum Erstellen und Verwenden der Datenbank entfernen. Entfernen Sie einfach die vierte und die neue fünfte Zeile.

sed '4d' dump.sql | sed '5d' > dump-striped.sql
0
netAction