Je sauvegarde ma base de données de production avec la commande suivante:
mysqldump -u root --opt --skip-extended-insert --databases my_production_db
Le fichier de vidage résultant contient les lignes suivantes vers le haut:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_production_db `;
Afin de restaurer la base de données vers une destination différente, par exemple. my_debvelopment_db
Je dois ouvrir le fichier de vidage et éditer les bits où la base de données est nommée.
Puis je cours:
mysql -u root -p <password> < mydumpfile
Je n'ai pas trouvé d'autre moyen de le faire.
À mesure que la base de données s'agrandit, cela devient impraticable.
Est-ce que je manque quelque chose? Puis-je spécifier en quelque sorte où je veux restaurer la base de données? Aurais-je besoin d'une commande de sauvegarde différente?
Si vous supprimez l'option --databases
tout en spécifiant le nom de la base de données, vous n'obtiendrez PAS les instructions create database. c'est à dire:
mysqldump -u root --opt --skip-extended-insert my_production_db
Sur votre machine de développement, créez simplement la base de données sur laquelle vous souhaitez restaurer.
La réponse de @minaz était bonne, mais je veux ajouter un peu plus.
Le problème était dû au mot clé --databases
. Si vous omettez le mot clé, il ne contiendra aucun contenu de création de base de données.
Dump sans le mot clé --databases
.
mysqldump -u username -p database_name > dump.sql
Et restaurez-le avec le nom de la base de données cible.
mysql -u username -p target_database_name < dump.sql
En outre, il existe plusieurs façons de procéder. Voir le problème similaire sur ici (dba.stackexchange).
Sur Windows xampp j'ai utilisé les commandes suivantes pour y parvenir
Exportation
mysqldump -u root -p mydb > mydb.sql
Importation
mysql -u root -p mynewdb < mydb.sql
Si vous avez déjà votre vidage, vous pouvez supprimer les commandes de création et d'utilisation de la base de données. Supprimez simplement la quatrième et la nouvelle cinquième ligne.
sed '4d' dump.sql | sed '5d' > dump-striped.sql