Restauration de plusieurs bases de données MySQL à partir d'un fichier sur la ligne de commande?

13

J'ai exporté toutes mes bases de données dans un fichier à l'aide de phpMyAdmin.

Malheureusement, je n'ai pas de phpMyAdmin fonctionnel dans mon système de destination.

Comment dois-je les restaurer tous à la fois en utilisant une seule commande de ligne?

smhnaji
la source
1
Avez-vous jeté un œil au dossier? Il devrait / pourrait contenir des commandes pour créer et basculer vers les bases de données selon les besoins.
Tom Regner
Oui, les bases de données sont créées puis elles ont été sélectionnées à l'aide de la USE database_namecommande.
smhnaji
Les réponses d'Unni et des laurents sont alors correctes.
Tom Regner

Réponses:

18

Pourquoi ne concattez-vous pas tous les fichiers en un seul fichier et importez / restaurez-les en utilisant

mysql -u username -p < dump.sql

Créez un fichier en utilisant

mysqldump -u username -p --all-databases > dump.sql
devav2
la source
L'OP a déjà un seul fichier et il a besoin de restaurer les fichiers afin qu'il ne puisse plus les vider, je suppose.
laurent
@laurent Oui, j'ai compris. L'utilisation mysql -u username -p < dump.sqlchargera la base de données mysql multiple.
devav2
oui, bien sûr
laurent
2
ça n'a pas marché pour moi. il dit que je dois sélectionner une base de données
Aryeh Armon
3

Si vous avez sauvegardé plusieurs bases de données dans un seul fichier, je suppose que vous avez sauvegardé les create databaseinstructions dans le même fichier. Sinon, il vous suffit d'ajouter les instructions create databaseet use databaseà votre fichier aux endroits appropriés.

Après cela, la commande pour charger le fichier dans mysql est:

mysql -p < sqlfile.sql

-p est de demander votre mot de passe.

Vous pouvez utiliser -u usernamesi vous devez utiliser un autre utilisateur.

laurent
la source
1

La commande mysql pour restaurer le fichier sql est:

mysql DATABASE_NAME < SQL_FILENAME.sql

assurez-vous d'abord que ce fichier est sql. Dans le cas où il se termine par l'extension de fichier gz, vous devez décompresser à l'aide de la commande:

gunzip SQL_FILE.sql.gz
Unni
la source
1
-1 . Comme je l'ai dit ci-dessus, il existe plusieurs bases de données stockées dans le fichier et je veux qu'elles soient toutes restaurées en même temps.
smhnaji
pouvez-vous exporter chaque base de données séparément dans phpmyadmin et la restaurer sur le serveur source? ou utilisez des éditeurs de flux linux tels que sed ou awk pour les diviser en différents fichiers.
Unni
1
pas besoin, il peut importer toutes les bases de données à partir d'un seul fichier
laurent