92 votes

mysql : Erreur de source 2 ?

Lorsque j'ai essayé de rechercher un fichier .sql particulier, à savoir 'metropolises.sql' que j'ai créé et sauvegardé précédemment à partir d'une base de données, l'erreur suivante s'affiche :

Échec de l'ouverture du fichier 'metropolises.sql', erreur : 2

Une idée de ce qui s'est passé ?

112voto

En supposant que vous voulez dire que vous essayez d'utiliser les source commande afin d'exécuter des instructions SQL à partir d'un fichier texte, le numéro d'erreur indiqué semble être transmis par la couche POSIX.

Par conséquent, en utilisant cette ressource on peut en déduire que la valeur d'erreur de 2 signifie "aucun fichier ou répertoire de ce type".

En bref, vous vous êtes trompé de chemin.

Essayez de fournir un chemin absolu car il n'est pas clair ce qu'est le répertoire de travail actuel sera dans le contexte de votre serveur MySQL. Vous pouvez supposer qu'il s'agit du répertoire de travail de votre shell, mais il n'est pas évident que ce soit le cas.

43voto

chad Points 1207

Il suffit d'utiliser le chemin absolu du fichier et ensuite, au lieu d'utiliser des barres obliques inverses, utiliser avant les barres obliques.

E

avec barres obliques inversées : source C:\folder1\metropolises.sql
avec barres obliques : source C:/dossier1/metropolises.sql

27voto

Hadi Mir Points 78

SI VOUS UTILISEZ MYSQL DANS DOCKER

Notez que si vous exécutez MySQL dans docker, vous devez d'abord copier le dump dans votre environnement MySQL docker. Pour ce faire, suivez les étapes ci-dessous

  1. Tout d'abord, vérifiez et copiez l'ID du conteneur de votre docker MySQL :

    sudo docker ps

  2. Copiez le fichier SQL dump dans votre conteneur en utilisant :

    sudo docker cp /path/to/sql/file.sql MysqlDockerID:/

    Ceci copiera le fichier dump dans le dossier docker Root si vous voulez copier le fichier dans un autre répertoire/chemin dans docker remplacez le '/' après 'MysqlDockerID:' avec le chemin que vous voulez.

  3. Maintenant, pour interagir avec MySQL à l'intérieur d'un conteneur en cours d'exécution, exécutez la commande suivante :

    sudo docker exec -it MysqlDockerID bin/bash

  4. Connectez-vous maintenant à MySQL en utilisant le terminal par :

    mysql -u yourUserName -p

    Le mot de passe vous est alors demandé. Saisissez le mot de passe correct pour continuer.

  5. Lister les bases de données disponibles par :

    show Databases;

    La liste des bases de données disponibles s'affiche

  6. En supposant que le nom de la base de données dans laquelle vous souhaitez importer le dump soit 'MyDatabase'. Passez à cette base en utilisant :

    use MyDatabase

  7. Vous pouvez maintenant importer le fichier en tapant :

    source file.sql

    N'oubliez pas que la commande ci-dessus fonctionne si vous avez copié votre fichier dans votre dossier racine (à l'aide de l'étape 2). Si vous l'avez copié dans un autre chemin, assurez-vous d'utiliser ce même chemin à la place.

15voto

user1906580 Points 61

Problème connexe J'ai obtenu l'erreur 2 en exécutant la commande source : le nom de fichier ne doit pas être entre guillemets même s'il contient des espaces dans le nom ou le chemin d'accès au fichier.

14voto

rocketTheCat Points 141

Il s'agit probablement du chemin d'accès à votre fichier. Si vous ne connaissez pas l'emplacement exact du fichier que vous souhaitez utiliser, essayez de trouver votre fichier dans le Finder, puis faites-le glisser dans la fenêtre du Terminal

mysql> SOURCE dragfilePathHere

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