Existe-t-il un moyen de copier une structure de base de données sans données dans MySQL, de sorte que la nouvelle base de données sera identique à celle à partir de laquelle elle est copiée, mais avec des tables vides.
Après avoir obtenu quelques suggestions, j'ai essayé la commande, mais je reçois une erreur de syntaxe, mon username = root
et password = nothing
. Je suppose que celui par défaut. J'essaie de suivre l'ordre,
mysqldump -u root -p -d xyz_db | mysql -u root -p -Dnew_db
qu'est-ce qui me manque ou est égaré?
mysqldump -u user -ppass -d olddb | mysql -u user -ppass -D newdb
La nouvelle base de données doit déjà exister. L'indicateur -d
dans la commande mysqldump empêche la copie de données.
Il n'y a pas d'espace entre l'indicateur -p
et le mot de passe.
Vous pouvez sauvegarder avec mysqldump et restaurer avec mysql en utilisant la ligne de commande.
Pour la base de données de sauvegarde
$ mysqldump -u root-pPassword -P3309 --routines --no-data testdb > "d:\dbwithnodata.sql"
Pour la restauration de la base de données
$ mysql -u root-pPassword -P3309 newdb < "d:\dbwithnodata.sql"
De electrictboolbox.com/mysqldump-schema-only :
Dumping de la structure de la base de données pour toutes les tables sans données Ajoutez l’indicateur -d pour indiquer qu’aucune donnée ne doit être incluse dans la sortie, comme suit: "mydatabase" est le nom de la base de données à vider, et "someuser" le nom de connexion utilisé pour se connecter à la base de données. La commande suivante va vider la structure de la table pour toutes les tables de la base de données MySQL spécifiée:
$ mysqldump -d -u someuser -p mydatabase
L'indicateur -d indique de ne pas inclure de données dans le vidage. Sinon, vous pouvez utiliser --no-data si vous trouvez cela plus facile à retenir:
$ mysqldump --no-data -u someuser -p mydatabase
L'indicateur -u indique le nom d'utilisateur et l'indicateur -p qu'un mot de passe sera fourni. Après avoir appuyé sur, vous serez invité à entrer le mot de passe.
Alternativement, le mot de passe peut être fourni sur la ligne de commande, mais il ne doit pas y avoir d'espace entre l'indicateur -p et le mot de passe. Par exemple, si le mot de passe était "pommes", procédez comme suit:
$ mysqldump --no-data -u someuser -papples mydatabase
$ mysqldump -d -u someuser -p mydatabase > mydatabase.sql # This will output to a sql file
Vous pouvez sauvegarder votre structure de base de données MYSQL avec
mysqldump -u username –p -d database_name > backup.sql
(Vous ne devez pas fournir de mot de passe en ligne de commande car cela entraîne des risques de sécurité. MySQL vous demandera le mot de passe par défaut.)
mysql -u username -p new_database < backup.sql
Maintenant, vous pouvez utiliser pipe pour donner le résultat de la première commande en sortie pour le second et vous n'aurez plus besoin de backup.sql
mysqldump -u username –p -d database_name|mysql -u username -p new_database
Toutes les tables seront créées dans new_database
sans données.
Essaye celui-là:
$ mysqldump --no-data -h localhost -u root -p database_name > imported_db_name.sql