web-dev-qa-db-fra.com

Comment importer un fichier .sql dans MySQL?

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 également essayé de le faire avec le client de commande mysql en utilisant:

mysqldump -u root database > file.sql 

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

41
Barbara Dreamer

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

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 il s'agit. Juste lors de l'importation à partir de la ligne de commande, vous devez être 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 comme Workbench, où vous devez de toute façon sélectionner le fichier dans l'arborescence des dossiers.

5
tamashumi

Exportation:

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

Importation:

mysql -u username –-password=your_password database_name < file.sql 
56
juergen d

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;
34
tdaget

Une autre façon d'importer des fichiers de vidage lorsque source <filename> ne fonctionne pas est de faire ce qui suit:

vidage

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

Importer

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

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

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

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 sous [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 et modifiez à nouveau, puis collez-le au même emplacement.)

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

1
user24439