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.
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
Vous pouvez utiliser la commande suivante:
mysql -u root -p --one-database destdbname < alldatabases.sql
Où 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 )