On m'a donné un fichier de base de données MySQL que je dois restaurer comme base de données sur mon ordinateur Windows Server 2008.
J'ai essayé d'utiliser l'administrateur de MySQL, mais j'ai eu 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 obtenir ce travail?
Cela devrait être aussi simple que d’exécuter ceci:
mysql -u <user> -p < db_backup.dump
Si le dump concerne une seule base de données, vous devrez peut-être ajouter une ligne en haut du fichier:
USE <database-name-here>;
S'il s'agissait d'un dump de nombreuses bases de données, les instructions d'utilisation s'y trouvent déjà.
Pour exécuter ces commandes, ouvrez une commande Invite (sous Windows) et cd
dans le répertoire où se trouve l'exécutable mysql.exe
partie d’un paquet comme WAMP). Une fois que vous êtes dans ce répertoire, vous devriez pouvoir taper simplement la commande telle que je l'ai ci-dessus.
Si la base de données que vous souhaitez restaurer n'existe pas déjà, vous devez d'abord la créer.
Sur la ligne de commande, si vous vous trouvez dans le même répertoire que le fichier vidé, 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;
Vous devez simplement exécuter ceci:
mysql -p -u[user] [database] < db_backup.dump
Si le vidage 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 commande Invite (sous Windows) et cd
dans le répertoire où se trouve l'exécutable mysql.exe
partie d’un paquet comme WAMP). Une fois dans ce répertoire, vous devriez être capable de taper simplement la commande.
mysql -u username -p -h localhost DATA-BASE-NAME < data.sql
regardez ici - étape 3 : de cette façon vous n’avez pas besoin de la déclaration USE
Lorsque nous créons un fichier de vidage avec mysqldump
, il contient un gros script SQL permettant de recréer le contenu de la base de données. Nous le restaurons donc en démarrant 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 de commandes pour créer la base de données et lire le fichier:
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 vidage.
Je l'ai fait fonctionner en suivant ces étapes…
Ouvrez l'administrateur MySQL et connectez-vous au serveur
Sélectionnez "Catalogues" à gauche
Faites un clic droit dans la case en bas à gauche et choisissez "Créer un nouveau schéma"
Administrateur MySQL http://img204.imageshack.us/img204/7528/adminsx9.th.gifagrandir l'image
Nommez le nouveau schéma (exemple: "dbn")
Nouveau schéma MySQL http://img262.imageshack.us/img262/4374/newwa4.th.gifagrandir l'image
Ouvrir l'invite de commande Windows (cmd)
Invite de commande Windows http://img206.imageshack.us/img206/941/startef7.th.gifagrandir l'image
Change le répertoire en dossier d'installation MySQL
Exécuter la commande:
mysql -u root -p dbn < C:\dbn_20080912.dump
… Où "root" est le nom de l'utilisateur, "dbn" est le nom de la base de données et "C:\dbn_20080912.dump" est le chemin/nom du fichier mysqldump .dump
Ligne de commande MySQL dump restore http://img388.imageshack.us/img388/2489/cmdjx0.th.gifagrandir l'image
Prendre plaisir!
Exécutez la commande pour entrer dans la base de données.
# mysql -u root -p
Entrez le mot de passe de l'utilisateur, puis créez une nouvelle base de données.
mysql> create database MynewDB;
mysql> exit
Et faites exit.Afetr that.Run cette commande
# mysql -u root -p MynewDB < MynewDB.sql
Puis entrez dans la base de données et tapez
mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit
Thats it ........ Votre dump sera restauré d'une base de données vers une autre.
Sinon, il existe un moyen alternatif de restaurer le vidage
# mysql -u root -p
Puis entrez dans la base de données et tapez
mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit
Vous pouvez essayer SQLyog "Exécuter le script SQL" pour importer des fichiers SQL/dump.
Si vous voulez voir la progression du dump, essayez ceci:
pv -i 1 -p -t -e/chemin/vers/sql/dump | mysql -u USERNAME -p DATABASE_NAME
Vous aurez bien sûr besoin de «pv» installé. Cette commande ne fonctionne que sur * nix.
./mysql -u <username> -p <password> -h <Host-name like localhost> <database-name> < db_dump-file
Comme exemple spécifique d'une réponse précédente:
J'avais besoin de restaurer une sauvegarde pour pouvoir l'importer/la migrer vers SQL Server. J'ai installé MySql uniquement, mais je ne l'ai pas enregistré en tant que service, ni ajouté à mon chemin car je n'ai pas besoin de le laisser fonctionner.
J'ai utilisé Windows Explorer pour mettre mon fichier de vidage dans C:\code\dump.sql. Ensuite, ouvrez MySql à partir de l’élément du menu Démarrer. Créé la base de données, puis exécuté la commande source avec le chemin complet, comme suit:
mysql> create database temp
mysql> use temp
mysql> source c:\code\dump.sql
En utilisant un fichier de dump de 200 Mo créé sous Linux pour restaurer sous Windows w/mysql 5.5, j’ai eu plus de succès avec
source file.sql
approche de l'invite mysql qu'avec le
mysql < file.sql
approche sur la ligne de commande, qui a causé une erreur 2006 "le serveur est parti" (sur Windows)
Bizarrement, le service créé lors de l'installation (mysql) fait référence à un fichier my.ini qui n'existait pas. J'ai copié le "grand" exemple de fichier dans my.ini Que j'avais déjà modifié avec les augmentations conseillées.
Mes valeurs sont
[mysqld]
max_allowed_packet = 64M
interactive_timeout = 250
wait_timeout = 250
Vous ne pouvez pas utiliser le menu de restauration dans l’administrateur MySQL si la sauvegarde/le vidage n’a pas été créé à partir de là. Cela vaut le coup d'essayer. Si vous choisissez "d'ignorer les erreurs" avec la case à cocher, cela indiquera que l'opération s'est terminée avec succès, bien qu'elle se termine clairement avec seulement une fraction des lignes importées ... c'est avec un vidage, remarquez.
Commande unique pour restaurer le code SQL généré à partir de mysqldump
mysql -u <username> -p<password> -e "source <path to sql file>;"
En supposant que vous ayez déjà créé la base de données vide, vous pouvez également restaurer une base de données à partir de la ligne de commande, comme suit:
Sudo mysql databasename < backup.sql
Vous pouvez également utiliser le menu de restauration de l'administrateur MySQL. Il vous suffit d'ouvrir le fichier de sauvegarde, puis de cliquer sur le bouton de restauration.
Vous pouvez exécuter la commande drop et créer des commandes dans un onglet de requête.
DROP DATABASE `your_db_name`;
CREATE SCHEMA `your_db_name`;