web-dev-qa-db-fra.com

Importer une base de données unique à partir du vidage --all-databases

Est-il possible d'importer une seule base de données depuis un mysqldump --all-databases? Je suppose que je peux modifier le fichier manuellement, mais je me demande s'il existe des options de ligne de commande pour ce faire.

Je déplace des serveurs et j'ai beaucoup de bases de données, dont la plupart dont je n'ai pas besoin ou que je ne veux pas pour le moment, mais j'aimerais avoir la possibilité d'en restaurer une seule si nécessaire.

64
savageguy

La sortie mysqldump n'est qu'un ensemble d'instructions SQL.

Vous pouvez fournir la base de données souhaitée dans la ligne de commande et ignorer les commandes par rapport aux autres bases de données en utilisant:

mysql -D mydatabase -o mydatabase < dump.sql

Cela exécutera uniquement les commandes lorsque mydatabase est en cours d'utilisation

71
Quassnoi

Vous pouvez utiliser la commande suivante:

mysql -u root -p --one-database destdbname < alldatabases.sql

destdbname est la base de données que vous souhaitez restaurer.

Une autre option qui est beaucoup plus sûre à mon humble avis est d'extraire la base de données d'un --all-databases vidage. Exemple:

sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql

Remplacez dbname par le nom de base de données souhaité. alldatabases.sql est le nom de votre fichier de vidage sql. De cette façon, vous aurez la base de données séparée dans le fichier, puis vous pourrez restaurer à l'aide d'une simple commande mysql.

Bonne chance

(Les crédits vont à: Darren Mothersele - voir sa page )

73
Hetzbh