Comment importer un fichier .sql dans MySQL?

39

J'essaie d'importer un fichier .sql à l'aide de MySQL Workbench et j'obtiens cette erreur:

ERROR 1046 (3D000) at line 28: No database selected

J'ai d'abord créé une base de données vide appelée avec le même nom que le fichier .sql mais cela ne fonctionne pas. J'ai aussi essayé de le faire avec le client de commande mysql en utilisant:

mysqldump -u root database > file.sql 

Mais il dit avoir une erreur dans ma syntaxe SQL. De plus, je ne connais pas le chemin où je dois définir le fichier.sql.

RolandoMySQLDBA
la source
J'ai pu importer mysqldump en utilisant le sous mysql> use mydatabase; mysql> source sql_file.sql;
Giridharan Venugopal Le

Réponses:

49

Exportation:

mysqldump -u username –-password=your_password database_name > file.sql

Importation:

mysql -u username –-password=your_password database_name < file.sql 
juergen d
la source
9
Il ne doit y avoir aucun espace entre -petpassword
tombom
Et si je n'ai pas de mot de passe?
Ensuite, ignorez le paramètre de mot de passe.
Commentaires
Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) élimine la nécessité d’utiliser un fichier intermédiaire.
Pacerier
2
La base de données doit exister dans MySQL pour que cela fonctionne, je pense.
Noumenon
28

Vous pouvez également importer un fichier .sql en tant qu'utilisateur déjà connecté à la base de données:

mysql> use your_database_name;

mysql> source file.sql;
tdaget
la source
3
source D: /path/file.sql; fonctionne superbe! souvenez-vous de la barre oblique avant au lieu de la barre oblique arrière.
Imdad
6

Une autre façon d’importer des fichiers de vidage lorsque source <filename>cela ne fonctionne pas est la suivante:

Déverser

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

Importation

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql
Mike S.
la source
5

La réponse de juergen est bien sûr correcte; Cependant, compte tenu de votre message d'erreur, vous pouvez également ajouter à votre fichier SQL à la ligne de début, comme suit:

USE your_database_name;

Cela devrait également faire le travail et vous permettre d'importer sous le Workbench.

Lorsque vous utilisez mysqldump, le fichier exporté sera enregistré dans le dossier actuel. Peu importe sous quel chemin c'est. Lors de l'importation en ligne de commande, vous devez vous trouver dans le même dossier ou spécifier le chemin d'accès au fichier. Mais ce n'est pas le cas lorsque vous utilisez un outil visuel tel que Workbench, dans lequel vous devez quand même sélectionner le fichier dans l'arborescence des dossiers.

Communauté
la source
2

Il vous manque le mot de passe dans la commande. Utilisez le suivant.

mysql --u [username] --password=[password] [database name] < [dump file]

la source
1

Pour Windows, dans le répertoire d'installation du serveur MySQL (par exemple C:\Program Files\MySQL\MySQL Server 5.5), dans le my.ini file, ajoutez la ligne suivante [mysqld]dans la section serveur:

max_allowed_packet = 16M

Et enregistrez les modifications. (Si vous n'êtes pas autorisé à enregistrer, copiez et collez sur le bureau, modifiez-le à nouveau, puis collez-le au même endroit.)

Après cela, redémarrez votre serveur MySQL.

utilisateur24439
la source