web-dev-qa-db-fra.com

copier la structure de la base de données sans données dans mysql (avec des tables vides)

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é?

40
Pramod
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.

60
Raab

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"
8
Saharsh Shah

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
1
lampwins

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.

1
Vinod Kumar

Essaye celui-là:

$ mysqldump --no-data -h localhost -u root -p database_name > imported_db_name.sql
1
Phoenix