J'ai une base de données appelée nitm
. Je n'ai créé aucune table ici. Mais j'ai un fichier SQL qui contient toutes les données nécessaires à la base de données. Le fichier est nitm.sql
qui se trouve dans C:\ drive
. Ce fichier a une taille d'environ 103 MB. J'utilise le serveur Wamp.
J'ai utilisé la syntaxe suivante dans la console MySQL pour importer le fichier:
mysql>c:/nitm.sql;
Mais cela n'a pas fonctionné.
Enfin, j'ai résolu le problème. J'ai placé le fichier `nitm.sql` dans le fichier` bin` du dossier `mysql` et utilisé la syntaxe suivante.
C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql
Et cela a fonctionné.
Depuis la console mysql:
mysql> use DATABASE_NAME;
mysql> source path/to/file.sql;
assurez-vous qu'il n'y a pas de barre oblique avant chemin si vous vous référez à un chemin relatif ... il m'a fallu un certain temps pour m'en rendre compte! lol
Si vous utilisez wamp, vous pouvez essayer ceci. Il suffit de taper use your_Database_name
en premier.
Cliquez sur l'icône de votre serveur wamp puis recherchez MYSQL > MSQL Console
puis exécutez-le.
Si vous n'avez pas de mot de passe, appuyez simplement sur Entrée et tapez:
mysql> use database_name;
mysql> source location_of_your_file;
Si vous avez un mot de passe, vous devrez entrer un mot de passe. Entrez votre mot de passe en premier, puis tapez:
mysql> use database_name;
mysql> source location_of_your_file;
location_of_your_file
devrait ressembler à C:\mydb.sql
la recommandation est donc mysql> source C:\mydb.sql;
Ce type d'importation SQL est très utile pour BIG SQL FILE.
J'ai copié mon fichier mydb.sq
dans le répertoire C:
. Il devrait s'agir d'un C majuscule pour pouvoir être exécuté.
et c'est tout.
Dans Windows, si la suggestion ci-dessus vous donne une erreur (fichier non trouvé ou base de données inconnue), vous voudrez peut-être doubler les barres obliques:
Dans la console mysql:
mysql> use DATABASE_NAME;
mysql> source C://path//to//file.sql;
D'accord, j'utilise Linux, mais je pense que cela vaut également pour Windows. Vous pouvez le faire soit directement à partir de la commande Invite.
> mysql -u <user name> -p<password> <database name> < sqlfilename.sql
Ou à partir de l'invite mysql, vous pouvez utiliser:
mysql>source sqlfilename.sql
Mais ces deux approches ont leurs propres avantages dans les résultats qu’elles affichent. Dans la première approche, le script se termine dès qu'il rencontre une erreur. Et le meilleur, c'est qu'il vous indique le numéro de ligne exact dans le fichier source où l'erreur s'est produite. Cependant, il affiche UNIQUEMENT les erreurs. S'il ne rencontre aucune erreur, le script n'affiche rien. Ce qui peut être un peu énervant. Parce que vous exécutez le plus souvent un script avec une pile de commandes.
La seconde approche (depuis l'invite mysql) présente l'avantage d'afficher un message pour chaque commande MySQL différente dans le script. S'il rencontre des erreurs, il affiche le message d'erreur mysql mais continue à travers les scripts. Cela peut être utile, car vous pouvez alors corriger toutes les erreurs avant de réexécuter le script. L'inconvénient est qu'il n'affiche PAS les numéros de ligne dans le script où les erreurs ont été rencontrées. Cela peut être un peu pénible. Mais les messages d'erreur sont aussi descriptifs que vous pourriez probablement trouver où le problème est.
Pour ma part, je préfère l'approche en ligne de commande directement à partir du système d'exploitation.
Si vous utilisez xampp
C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
Vous êtes presque là utiliser
mysql> \. c:/nitm.sql;
Vous pouvez également accéder à l'aide de
mysql> \?
Pour localhost sur XAMPP. Ouvrez une fenêtre de commande et tapez
cd C:\xampp\mysql\bin
mysql.exe -u root -p
Attention! Pas de point-virgule après -p Entrez votre mot de passe et tapez
use database_name;
pour sélectionner la base de données dont vous avez besoin.
Vérifiez si votre table est là
show tables;
Importer à partir de votre fichier SQL
source sqlfile.sql;
J'ai mis mon fichier sur l'emplacement C:\xampp\mysql\bin afin de ne pas confondre avec les emplacements du fichier SQL.
Essayer:
mysql -u username -p database_name < file.sql
Vérifiez Options MySQL .
Remarque: Il est préférable d’utiliser le chemin complet du fichier SQL file.sql
.
Sous Linux, j'ai navigué jusqu'au répertoire contenant le fichier .sql avant de démarrer mysql. Le curseur système se trouve maintenant au même emplacement que le fichier et vous n’avez plus besoin d’un chemin. Utilisez source myData.sql où ma date est remplacée par le nom de votre fichier.
cd whatever directory
mysql - p
connecter targetDB
source myData.sql
Terminé
N'oubliez pas d'utiliser
charset utf8
Si votre fichier SQL est en utf-8 :)
Donc vous devez faire:
cmd.exe
mysql -u root
mysql> charset utf8
mysql> use mydbname
mysql> source C:\mon dossier\monfichier.sql
Bonne chance ))
Votre vidage contient-il des fonctionnalités qui ne sont pas prises en charge dans votre version de MySQL? Vous pouvez également essayer de supprimer les instructions SET commentées de début et de fin de MySQL.
Je ne sais pas si votre dump provient d'une version Linux de MySQL (fins de lignes)?
J'ai installé mon serveur Wamp dans le lecteur D: vous devez donc aller dans le chemin suivant depuis la ligne de commande ur -> (et si vous avez installé votre wamp dans le lecteur c: remplacez simplement le d: par c: ici)
D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql"
ici root est l'utilisateur de mon phpmyadmin mot de passe est le mot de passe de phpmyadmin donc si vous n'avez pas défini de mot de passe pour root, tapez rien à cet endroit, nom_bdd est la base de données (pour laquelle la base de données prend la sauvegarde), backupfile.sql est le fichier à partir duquel vous voulez sauvegarder votre base de données et vous pouvez également modifier l'emplacement du fichier de sauvegarde (d:\backupfile.sql) de tout autre endroit sur votre ordinateur
à partir de la ligne de commande (cmd.exe, pas à partir de mysql Shell), essayez quelque chose comme:
type c:/nite.sql | mysql -uuser -ppassword dbname
mysql>c:/nitm.sql;
Cela écrirait le résultat de la commande mysql en 'nitm.sql;' (Qu'est-ce que le ';' est supposé faire?) En supposant que vous ayez une copie du fichier original (avant de l'écraser), alors:
mysql < c:/nitm.sql
Exporter des bases de données particulières
djimi:> mysqldump --user=root --Host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql
cela exportera les bases de données CCR et KIT ...
Importer toutes les bases de données exportées dans une instance particulière de Mysql (vous devez être à l'emplacement de votre fichier de vidage)
djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
Pour ceux d'entre vous qui ont du mal à le faire, essayez toutes les réponses possibles sur SO. Voici ce qui a fonctionné pour moi sur un VPS exécutant Windows 2012 R2:
Placez votre fichier SQL où que le bac soit pour moi, il se trouve à C:\Program Files\MySQL\MySQL Server 8.0\bin
Ouvrir la commande windows Invite (cmd)
C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
use [database_name]
;C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql
Ça l'a fait pour moi car tout le reste avait échoué. Cela pourrait vous aider aussi.
Sous Windows, les commandes suivantes fonctionnent pour moi.
mysql>Use <DatabaseName>
mysql>SOURCE C:/data/ScriptFile.sql;
Pas de guillemets simples ni de guillemets doubles autour du nom du fichier. Le chemin contiendrait '/' au lieu de '\'.