636 votes

Comment restaurer un fichier de sauvegarde à partir de mysqldump ?

On m'a donné un fichier de base de données MySQL que je dois restaurer en tant que base de données sur ma machine Windows Server 2008.

J'ai essayé d'utiliser MySQL Administrator, mais j'ai obtenu l'erreur suivante:

Le fichier sélectionné a été généré par mysqldump et ne peut pas être restauré par cette application.

Comment puis-je faire fonctionner cela?

0 votes

Super question, merci de l'avoir posée avant moi, votée! J'ai fini par opter pour une solution non acceptée qui fonctionnait très bien, mais toutes les méthodes sont bonnes. Santé.

813voto

Dónal Points 61837

Si la base de données que vous voulez restaurer n'existe pas déjà, vous devez d'abord la créer.

Sur la ligne de commande, si vous êtes dans le même répertoire que celui contenant le fichier dump, utilisez ces commandes (avec les substitutions appropriées) :

C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;

59 votes

Je personnellement aime cette méthode. cela montre les progrès du dump et aussi exactement combien de temps différents sql sont en cours.

14 votes

@Phrogz En fait, vous pouvez fournir le mot de passe sur la ligne de commande en utilisant mysql -u root -psecret sans l'espace, mais cela a pour inconvénient que votre mot de passe apparaît en clair dans les listes de processus et les fichiers journaux. Il est préférable, comme vous le suggérez, d'utiliser -p vide et de le taper dans l'invite.

0 votes

Cette méthode présente l'avantage de permettre de définir des variables basées sur la session (par exemple FOREIGN_KEY_CHECKS) sans avoir à modifier le fichier de sauvegarde

659voto

Justin Bennett Points 2513

Il suffit d'exécuter ceci:

mysql -u  -p < db_backup.dump

Si la sauvegarde est d'une seule base de données, vous devrez peut-être ajouter une ligne en haut du fichier:

USE ;

S'il s'agissait d'une sauvegarde de plusieurs bases de données, les instructions d'utilisation sont déjà incluses.

Pour exécuter ces commandes, ouvrez une fenêtre de commande (sous Windows) et cd vers le répertoire où se trouve l'exécutable mysql.exe (il se peut que vous ayez à chercher un peu, cela dépend de comment vous avez installé mysql, c'est-à-dire en tant que standalone ou dans le cadre d'un package comme WAMP). Une fois dans ce répertoire, vous devriez simplement pouvoir taper la commande comme je l'ai indiqué ci-dessus.

1 votes

Est-ce que j'utilise le "Client MySQL en ligne de commande"? Je n'ai jamais utilisé MySQL avant.

1 votes

Ouvrez le fichier de vidage dans un éditeur de texte, il est assez facile à parcourir. S'il y a des déclarations "using", alors il s'agit de plusieurs bases de données, s'il n'y en a pas, vous devrez en ajouter une en haut avant de pouvoir exécuter cette commande.

6 votes

Bien sûr, la base de données que vous mettez dans l'instruction "using" devra exister d'abord.

298voto

vog Points 3334

Il vous suffit d'exécuter ceci :

mysql -p -u[user] [base de données] < db_backup.dump

Si le fichier de sauvegarde contient plusieurs bases de données, vous devez omettre le nom de la base de données :

mysql -p -u[user] < db_backup.dump

Pour exécuter ces commandes, ouvrez une invite de commandes (sous Windows) et cd vers le répertoire où se trouve l'exécutable mysql.exe (vous devrez peut-être chercher un peu, cela dépendra de la façon dont vous avez installé mysql, par exemple en tant que programme autonome ou dans le cadre d'un package comme WAMP). Une fois dans ce répertoire, vous devriez pouvoir simplement taper la commande.

63voto

womd Points 645
mysql -u nom_utilisateur -p -h localhost NOM-DE-LA-BASE-DE-DONNEES < data.sql

regarder ici - étape 3 : de cette façon, vous n'avez pas besoin de l'instruction USE

37voto

pdc Points 1306

Quand nous créons un fichier de sauvegarde avec mysqldump, il contient un grand script SQL pour recréer le contenu de la base de données. Nous le restaurons en utilisant le client en ligne de commande de MySQL :

mysql -uroot -p 

(où root est notre nom d'utilisateur administrateur pour MySQL), et une fois connecté à la base de données, nous avons besoin des commandes pour créer la base de données et lire le fichier dedans :

create database new_db;
use new_db;
\. dumpfile.sql

Les détails varieront en fonction des options utilisées lors de la création du fichier de sauvegarde.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X