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?
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.
@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).
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
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