Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exécuter des commandes SQL avec un fichier externe

SOURCE

    25 septembre 2021 à 13:44:32

    Bonjour,

    Je suis le cours Administrer vos Bases de Données avec MySQL.

    Je n'arrive pas à utiliser la commande SQL SOURCE. Je précise que je me connecte à partir de C:/Users/DELL.

    Voici le message d'erreur si j'utilise la commande SOURCE Test.sql;

    ERROR:
    Failed to open file 'Test.sql', error: 2

    J'avais déjà utilisé la commande en donnant le chemin d'accès en mettant le fichiers dans un autre repertoire:

    SOURCE C:/Users/Public/Test.sql;

    Mais c'est le même type d'erreur qui est renvoyée.

    Aidez moi SVP

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      27 septembre 2021 à 23:02:14

      error 2 signifie que le chemin n'est pas bon. Essaye de faire 2 BDD dans un même répertoire et tente une commande SOURCE sans chemin (juste le nom de l'autre BDD) puisque SOURCE cherche dans le répertoire courant en premier. Si tu as la même erreur, vérifie les privilèges. Il se peut que l'utilisateur de la BDD 1 n'a pas les droits d'utilisation de la BDD Test.sql.
      • Partager sur Facebook
      • Partager sur Twitter
        28 septembre 2021 à 19:01:17

        @CR le fichier n'est pas une base, mais un fichier de requêtes 

        Est-ce que le fichier existe (fichier enregistré)? est-ce qu'il contient au moins une requête SQL ? (fichier non vide)

        Est-ce que le chemin indiqué est le bon ?

        retire le point virgule à la fin aussi (je ne pense pas qu'il soit nécessaire)

        -
        Edité par umfred 28 septembre 2021 à 19:03:01

        • Partager sur Facebook
        • Partager sur Twitter
          28 septembre 2021 à 20:17:07

          Bonsoir,

          Merci pour les réponses.

          J'ai bien enregistré les fichiers.

          J'ai dans un premier temps utilisé la commande source en indiquant le chemin d'accès au fichier.

          Ensuite, j'ai mis le fichier le répertoire courant mais c'est le même message d'erreur que je reçois.

          Pour ce qui est des privilèges, j'ai tenté en me connectant avec l'utilisateur root mais ça n'a rien changé.....

          • Partager sur Facebook
          • Partager sur Twitter
            29 septembre 2021 à 11:05:02

            tu as essayé la commande alternative suggéré => \. nom_fichier;
            • Partager sur Facebook
            • Partager sur Twitter
              29 septembre 2021 à 11:23:35

              Bonjour,

              Peut-être également en remplaçant les / par des \ (merci Windows).

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                29 septembre 2021 à 11:50:11

                le cours indique justement d'utiliser des / au lieu des \ pour windows :lol:; mais c'est vrai, sur un malentendu ça peut marcher :magicien:
                • Partager sur Facebook
                • Partager sur Twitter
                  2 octobre 2021 à 13:55:41

                  Bonsoir,

                  Merci pour votre aide, j'ai tenté aussi avec la commande

                  \.Test.sql et voici l'erreur:

                  ERROR:
                  Usage: \. <filename> | source <filename>

                  Avec  \.C:/Users/DELL/Test.sql

                  ERROR:
                  Usage: \. <filename> | source <filename>

                  Avec SOURCE Test.sql

                  ERROR:
                  Failed to open file 'Test.sql', error: 2

                  SOURCE C:/Users/DELL/Test.sql

                  ERROR:
                  Failed to open file 'C:\Users\DELL\Test.sql', error: 2

                  ça ne marche pas et je ne vois pas pourquoi

                  -
                  Edité par YahyaRhissa 2 octobre 2021 à 13:57:20

                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 octobre 2021 à 18:30:10

                    Je suis sur Linux, mais, le principe doit être le même je pense.

                    Je me suis mis sur le répertoire du bureau et j'ai créé une BDD A. Une fois créée, j'ai voulu la chercher dans le répertoire du bureau : que tchi.

                    En fait, elle s'enregistre dans le dossier de MySQL qui n'est pas dans le bureau. Par contre si je dump la BDD sur le bureau, j'ai bien un fichier A.sql que je peux lire avec un éditeur de texte et qui contient les métadonnées et les requêtes.

                    Donc, ouvre le fichier de requêtes que tu veux utiliser dans MySQL. Ensuite, tu le dump à un emplacement que tu connais, le mieux serait le répertoire où se trouve la BDD principale. Ferme MySQL.

                    Ouvre MySQL sur la BDD principale et applique la fonction SOURCE pour voir.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 octobre 2021 à 12:45:31

                      euh avec \., il faut un espace avec le nom de fichier comme indiqué dans le message d'erreur

                      => \. test.sql 

                      Tu arrives vraiment à ouvrir avec notepad (bloc-notes)  ce fichier ? c:\users\dell\test.sql ? 

                      ce n'est pas vraiment un emplacement usuel, c'est plutôt sur le bureau ou mes documents (ou ailleurs) mais rarement directement dans le dossier utilisateur.

                      créé un répertoire c:\SQL et mets y ton fichier, et relances la commande SOURCE ou \. avec le chemin c:/sql/test.sql

                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 octobre 2021 à 21:23:24

                        Hier, sur un autre sujet, j'ai utilisé la commande SOURCE. J'ai fait des tests en déplaçant l'emplacement de base par rapport à la BDD. Il faut jouer avec les chemins relatifs et ça fonctionne.

                        Le problème provient de là, j'en suis quasiment certains.

                        P.S : il faut utiliser .. pour remonter vers le dossier parents et le mieux est de schématiser le chemin sur papier.

                        ÉDITION : solution fournie.

                        J'ai relu les messages, on a tous, tout faux.

                        Si je reprends : " je me connecte à partir de C:/Users/DELL" cela signifie qu'il est dans le dossier DELL.

                        Le fichier sql est dans : C:/Users/Public/Test.sql

                        Donc on a :

                        1   | 2      | 3       | 4
                        C:/ | Users/ | DELL/   | endroit de connexion
                        C:/ | Users/ | Public/ | Test.sql
                        
                        première étape : on est dans 4, on remonte avec ..
                        
                        deuxième étape : on est dans 3, 
                        on va dans le dossier Public/
                        
                        dernière étape : on récupère le fichier Test.sql
                        
                        ça donne :
                        SOURCE ../Public/Test.sql

                        Sous conditions que Yahia ait indiqué des chemins absolus corrects.

                        -
                        Edité par CristianoRolando 9 octobre 2021 à 0:15:44

                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 octobre 2021 à 11:11:49

                          que l'on passe un chemin absolu ou relatif, ne devrait pas changer grand chose à l'exécution de la commande, à partir du moment où le chemin indiqué amène au bon fichier (et qu'on y a au moins les droits en lecture)
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Exécuter des commandes SQL avec un fichier externe

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          • Editeur
                          • Markdown