Partage
  • Partager sur Facebook
  • Partager sur Twitter

remplir une bdd à partir d'un fichier texte

    20 janvier 2019 à 17:30:08

    Bonjour à tous,

    Je m'exerce à remplir ma bdd à partir d'un fichier texte (je suis le cours d'OpenClassroom sur les MySQL - partie 1).

    Je n'arrive pas à effectuer ce fameux remplissage.

    Je tape le script suivante:

    mysql> SOURCE remplissageanimal.sql;

    J'obtiens la réponse suivante:

    No connection. Trying to reconnect...
    ERROR 1049 (42000): Unknown database 'emplissageanimal.sql;'
    ERROR: 
    Can't connect to the server

    Le problème persiste si je spécifie un chemin d'accès complet:

    SOURCE home\moi\Bureau\remplissageanimal.sql

    J'obtiens:

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

    Une idée de l'origine du problème?



    -
    Edité par Cro-Magnon 20 janvier 2019 à 17:34:12

    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2019 à 9:14:54

      Bonjour,

      Peux-tu donner le contenu de ton fichier sql?

      Merci

      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2019 à 10:16:12

        Oui, pas de problème. J'ai fait copier-coller de l'exercice proposé dans le cours d'OC.

        Ce qui donne ça:

        INSERT INTO animal (espece, sexe, date_naissance, nom, commentaires) VALUES 
        ('chien', 'F', '2008-02-20 15:45:00' , 'Canaille', NULL),
        ('chien', 'F','2009-05-26 08:54:00'  , 'Cali', NULL),
        ('chien', 'F','2007-04-24 12:54:00' , 'Rouquine', NULL),
        ('chien', 'F','2009-05-26 08:56:00' , 'Fila', NULL),
        ('chien', 'F','2008-02-20 15:47:00' , 'Anya', NULL),
        ('chien', 'F','2009-05-26 08:50:00' ,'Louya' , NULL),
        ('chien', 'F', '2008-03-10 13:45:00','Welva' , NULL),
        ('chien', 'F','2007-04-24 12:59:00' ,'Zira' , NULL),
        ('chien', 'F', '2009-05-26 09:02:00','Java' , NULL),
        ('chien', 'M','2007-04-24 12:45:00' ,'Balou' , NULL),
        ('chien', 'M','2008-03-10 13:43:00' ,'Pataud' , NULL),
        ('chien', 'M','2007-04-24 12:42:00' , 'Bouli', NULL),
        ('chien', 'M', '2009-03-05 13:54:00','Zoulou' , NULL),
        ('chien', 'M','2007-04-12 05:23:00' ,'Cartouche' , NULL),
        ('chien', 'M', '2006-05-14 15:50:00', 'Zambo', NULL),
        ('chien', 'M','2006-05-14 15:48:00' ,'Samba' , NULL),
        ('chien', 'M', '2008-03-10 13:40:00','Moka' , NULL),
        ('chien', 'M', '2006-05-14 15:40:00','Pilou' , NULL),
        ('chat', 'M','2009-05-14 06:30:00' , 'Fiero', NULL),
        ('chat', 'M','2007-03-12 12:05:00' ,'Zonko', NULL),
        ('chat', 'M','2008-02-20 15:45:00' , 'Filou', NULL),
        ('chat', 'M','2007-03-12 12:07:00' , 'Farceur', NULL),
        ('chat', 'M','2006-05-19 16:17:00' ,'Caribou' , NULL),
        ('chat', 'M','2008-04-20 03:22:00' , 'Capou', NULL),
        ('chat', 'M','2006-05-19 16:56:00' , 'Raccou', 'Pas de queue depuis la naissance');



        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2019 à 11:33:30

          Bonjour,

          La première erreur semble indiquer que tu n'as pas précisé la BDD à utiliser avant de faire le SOURCE. Soit tu mets la commande USE dans ton fichier SQL, soit tu tapes cette commande dans la console avant d'exécuter le SOURCE ...

          La deuxième erreur est plus un problème de chemin (il manque le C:\ ) ou de guillemets pour encadrer le chemin.

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            21 janvier 2019 à 14:46:25

            Bonjour, et merci pour ta réponse.

            Pour l'instant je travaille sur la console (sous Linux). J'ai utilisé la commande USE pour être certain de me trouver sur la bonne BDD.

            Le fichier à transférer se trouve sur le bureau. J'ai donc utilisé la commande

            \! bash

            puis,

            cd ~/Bureau

            Pour "aligner"la BDD et le fichier à transmettre sur le même repertoire. Mais pareil, même résultat.

            SOURCE remplissageanimal.sql
            ERROR: Failed to open file 'remplissageAnimal.sql', error: 2

            Remarque intéressante: J'ai pu transférer le fichier sous format .csv, grâce à la commande: LOAD DATA LOCAL INFILE

            J'ai également pu transférer le fichier sous format .sql avec cette commande... Sauf qu'au lieu de mettre chaque valeur dans la bonne colonne, il me met toute la ligne dans la premiere colonne et laisse les autres vides! o_O Comprend pas...


            • Partager sur Facebook
            • Partager sur Twitter
              21 janvier 2019 à 14:54:54

              Cro-Magnon a écrit:

              J'ai pu transférer le fichier sous format .csv, grâce à la commande: LOAD DATA LOCAL INFILE

              J'ai également pu transférer le fichier sous format .sql avec cette commande... Sauf qu'au lieu de mettre chaque valeur dans la bonne colonne, il me met toute la ligne dans la premiere colonne et laisse les autres vides!

              La commande LOAD DATA ne permet pas d'exécuter des commandes SQL contenu dans un fichier texte, mais d'insérer des données brutes dans une table depuis un fichier texte. En gros LOAD DATA revient à faire un INSERT INTO ... avec les lignes de ton fichier texte ...

              Ici ton fichier texte contient des commandes SQL, pas des données brutes ... c'est donc normal que tu ne puisses pas importer ton fichier .sql avec la commande LOAD DATA.

              Cro-Magnon a écrit:

              SOURCE remplissageanimal.sql
              ERROR: Failed to open file 'remplissageAnimal.sql', error: 2

              La console mysql travaille depuis le répertoire d'installation de mysql.

              Il faut donc donner le chemin absolu vers ton fichier. Par exemple sous Windows :

              SOURCE "c:\users\moi\desktop\remplissageanimal.sql"
              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                21 janvier 2019 à 15:56:02

                J'ai tapé la commande:

                \! pwd

                dans mysql pour connaitre le répertoire de travail de l'application. La console m'a renvoyé : /home/moi/Bureau

                J'ai donc tapé:

                mysql> SOURCE /home/moi/Bureau/remplissageanimal.sql;

                Ça ne marche pas. Peut être que je confonds répertoire d'installation avec répertoire de travail. En ce cas, comme puis-je connaître le répertoire d'installation de mysql?

                • Partager sur Facebook
                • Partager sur Twitter
                  21 janvier 2019 à 16:01:07

                  Tu es sous GNU/Linux ?

                  Cro-Magnon a écrit:

                  Ça ne marche pas

                  Quelle est l'erreur ?

                  Essayes avec des guillemets :

                  SOURCE "/home/moi/bureau/remplissageanimal.sql";

                  Et en changeant le sens des slash :

                  SOURCE "\home\moi\bureau\remplissageanimal.sql";

                  -
                  Edité par Benzouye 21 janvier 2019 à 16:03:24

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    21 janvier 2019 à 16:36:42

                    Oui, je suis sous Ubuntu.

                    J'ai essayé les solutions que tu m'as indiqué. Ça n'a pas marché, malheureusement.

                    Ça commence à me désespérer gentiment ce problème... :-°

                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 janvier 2019 à 16:42:24

                      Cro-Magnon a écrit:

                      Ça n'a pas marché

                      C'est à dire ?

                      Peux-tu poster exactement les commandes saisies dans la console ( USE puis SOURCE ), et les erreurs exactes retournées ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                        21 janvier 2019 à 17:41:29

                        Oui, naturellement.

                        Pour commencer, j'entre le nom de la BDD(elevage) grâce à la commande:

                        USE elevage 

                        Le programme renvoie:

                        Database changed

                        Ensuite, voici les commandes testées et les erreurs renvoyées

                        mysql> SOURCE /home/moi/Bureau/remplissageAnimal.sql;
                        ERROR: Failed to open file '/home/simon/Bureau/remplissageAnimal.sql', error: 2
                        mysql> SOURCE '/home/moi/Bureau/remplissageAnimal.sql';
                        ERROR: Failed to open file '/home/simon/Bureau/remplissageAnimal.sql', error: 2
                        mysql> SOURCE \home\simon\Bureau\remplissageAnimal.sql;
                        mysql> SOURCE '\home\simon\Bureau\remplissageAnimal.sql';

                        même message que précédemment

                         Voilà tous ce qui m'est renvoyé lors de mes différents tests. J'ai tous mis. J'espère que ce ne sera pas trop complexe à analyser...

                        -
                        Edité par Benzouye 21 janvier 2019 à 18:55:55

                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 janvier 2019 à 18:53:18

                          Je sèche ...

                          Essaye avec des guillemets plutôt que des quotes ... peut-être ...

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                            21 janvier 2019 à 19:48:07

                            Bon, ce n'est pas grave. Je vais continuer à chercher. Au moins, j'ai la possibilité d'intégrer les données avec LOAD DATA.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            remplir une bdd à partir d'un fichier texte

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown