IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SGBD Perl Discussion :

Problème Module DBI DBD::mysql


Sujet :

SGBD Perl

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 49
    Points
    49
    Par défaut Problème Module DBI DBD::mysql
    Bonjour,

    Je n'ai pas trouvé de post proposant une solution à mon problème, je vais donc essayer d'être précis afin de demander votre aide.

    J'utilise:
    Windows XP & Cygwin
    perl, v5.10.0
    MySQL 5.1.44
    Toad for MySQL Beta 4.6.0.522

    Sujet:
    Se connecter à ma base MySQL au travers d'un script en Perl afin d'afficher/intégrer des données.

    Ci-dessous le script de test que j'utilise de ce tutorial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #! /usr/bin/perl -w
     
            use DBI;
            use strict;
            # infos connexion
            my $user= "root";
    	# passe de compte
            my $password= "dbb";
    	# ip du serveur Mysql cible
            my $host= "127.0.0.1";
    	# database est la table mysql visée
            my $dbh= DBI->connect("dbi:mysql:database=dbb_report;host=$host",$user,$password)
            or die $DBI::errstr;
    	# requete SQL
            my $sth= $dbh->prepare("SELECT * FROM zz_operator")
            or die $DBI::errstr;
            $sth->execute();
    	# Intégration des données dans des colonnes
            my $numRows = $sth->rows;
            my @row;
    	# boucle pour affichage de tout les résulats
            while ( @row = $sth->fetchrow_array )
    {
            print $row[1];
    }
            $dbh->disconnect or die $DBI::errstr;
    Au lieu de m'afficher les données j'obtiens ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ perl test.pl
    install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib/perl5/5.10/i686-cygwin /usr/lib/perl5/5.10 /usr/lib/perl5/site_perl/5.10/i686-cygwin /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10/i686-cygwin /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at (eval 3) line 3.
    Perhaps the DBD::mysql perl module hasn't been fully installed,
    or perhaps the capitalisation of 'mysql' isn't right.
    Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.
     at test.pl line 12
    C'est un message décrit par le tutorial pouvant arriver et préconise de réinstaller les 3 modules ce dont j'ai fais.
    J'ai effectivement un problème sur l'un des 3 modules.

    J'utilise Windows, donc via Cygwin je fais:
    >cpan
    >install Bundle::DBD::mysql
    J'obtiens en message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    cpan[1]> install Bundle::DBD::mysql
    CPAN: Storable loaded ok (v2.18)
    Going to read /home/ngarnero/.cpan/Metadata
      Database was generated on Sun, 28 Feb 2010 12:43:35 GMT
    CPAN: YAML loaded ok (v0.66)
    Going to read /home/ngarnero/.cpan/build/
    ............................................................................DONE
    Found 20 old builds, restored the state of 18
    DBI is up to date (1.609).
    Running install for module 'DBD::mysql'
    Running make for C/CA/CAPTTOFU/DBD-mysql-4.013.tar.gz
      Has already been unwrapped into directory /home/ngarnero/.cpan/build/DBD-mysql-4.013-lfzUh9
      '/usr/bin/perl5.10.0.exe Makefile.PL' returned status 512, won't make
    Running make test
      Make had some problems, won't test
    Running make install
      Make had some problems, won't install
    Je suis allé sur le site de cpan et j'ai téléchargé DBD-mysql-4.011.tar.gz

    Via Cygwin je fais donc:
    perl Makefile.PL
    J'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 76.
     
    Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
    not contain the path to mysql_config. Resorting to guessed values!
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 454.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 454.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 454.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
     
     
    PLEASE NOTE:
     
    For 'make test' to run properly, you must ensure that the
    database user 'ngarnero' can connect to your MySQL server
    and has the proper privileges that these tests require such
    as 'drop table', 'create table', 'drop procedure', 'create procedure'
    as well as others.
     
    mysql> grant all privileges on test.* to 'ngarnero'@'localhost' identified by 's3kr1t';
     
    You can also optionally set the user to run 'make test' with:
     
    perl Makefile.pl --testuser=username
     
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 454.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 454.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 454.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Failed to determine directory of mysql.h. Use
     
      perl Makefile.PL --cflags=-I<dir>
     
    to set this directory. For details see the INSTALL.html file,
    section "C Compiler flags" or type
     
      perl Makefile.PL --help
    Je suis donc bloqué, je n'arrive pas à trouver de solution à mon problème et ce "Can't find mysql_config".

    Merci d'avance pour votre aide.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Lis notre FAQ perl, la section installation de modules Perl t'aidera. Il fait également référence à un tutoriel que tu peux lire.

    Il te faudra installer le module DBI, DBD::Mysql et normalement, ce sera OK.
    Il faut aussi utilise les pragmas strict dans tes scripts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use warnings; 
    use strict;

    Voilà

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 76.

    Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
    not contain the path to mysql_config. Resorting to guessed values!
    Le programme mysql_config a dû être installé avec mysql. Il faut trouver dans quel répertoire il se trouve, et ajouter ce répertoire à la variable $PATH avant d'exécuter le perl Makefile.PL

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    J'ai trouvé le mysql_config.pl, je l'ai ajouté au $PATH windows ainsi qu'un autre dossier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\MySQL\MySQL Server 5.5\include\mysql
    Je suis même allé avec cygwin dans le dossier ou se trouve mysql_config.pl pour l’exécuter.
    J'ai ré exécuté le fichier perl Makefile.PL
    J'ai refais un cpan install DBD::mysql

    Tout ceci n'a pas fonctionné
    Je suis désespéré

    J'ai toujours le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    CPAN: Module::CoreList loaded ok (v2.18)
     
      CPAN.pm: Building C/CA/CAPTTOFU/DBD-mysql-4.020.tar.gz
     
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 83.
     
    Cannot find the file 'mysql_config'! Your execution PATH doesn't seem
    not contain the path to mysql_config. Resorting to guessed values!
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 478.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 478.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 478.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
     
     
    PLEASE NOTE:
     
    For 'make test' to run properly, you must ensure that the
    database user 'Nicolas' can connect to your MySQL server
    and has the proper privileges that these tests require such
    as 'drop table', 'create table', 'drop procedure', 'create procedure'
    as well as others.
     
    mysql> grant all privileges on test.* to 'Nicolas'@'localhost' identified by 's3kr1t';
     
    You can also optionally set the user to run 'make test' with:
     
    perl Makefile.PL --testuser=username
     
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 478.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 478.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Can't exec "mysql_config": No such file or directory at Makefile.PL line 478.
    Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
    Failed to determine directory of mysql.h. Use
     
      perl Makefile.PL --cflags=-I<dir>
     
    to set this directory. For details see the INSTALL.html file,
    section "C Compiler flags" or type
     
      perl Makefile.PL --help
    Warning: No success on command[/usr/bin/perl Makefile.PL]
      CAPTTOFU/DBD-mysql-4.020.tar.gz
      /usr/bin/perl Makefile.PL -- NOT OK
    Running make test
      Make had some problems, won't test
    Running make install
      Make had some problems, won't install
    Could not read metadata file. Falling back to other methods to determine prerequisites
    Failed during this command:
     CAPTTOFU/DBD-mysql-4.020.tar.gz              : writemakefile NO '/usr/bin/perl Makefile.PL' returned status 512

  5. #5
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    est-ce que tu as réussi à résoudre ton problème car j'ai exactement le même problème ?

    merci

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    le perl Makefile.PL cherche mysql_config, et non mysql_config.pl
    Ce n'est pas le même fichier donc c'est une raison suffisante pour que ça ne marche pas.
    Mais visiblement il y a des options ou une variable d'environnement pour spécifier le nom de ce fichier, c'est qu'il faudrait tenter.

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Essayez d'installer le module via ppm si vous êtes sous Windows.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Bonsoir,

    Non, je n'ai pas encore solutionné mon problème.
    Quand je vois que je peux installer les modules que je souhaite via cpan sauf celui là ça me rend fou.

    J'ai été voir ce lien, il y a sans doute des infos utiles.

    Là je suis trop crever pour continuer à chercher, je verrai plus tard.

    Sinon Djibril je ne connais pas ppm
    Je suis sous Windows XP, est-ce quelque chose par défaut? Faut-il l'installer?

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Tu n'as donc pas lu l'article que j'ai écrit pour l'installation des modules Perl.
    Lorsque tu es sous Windows et que tu souhaites installer un module, ton premier reflex doit être ppm et ensuite cpan, jamais l'inverse . Il gère correctement les dépendances et les modules à disposition ont été packagés pour une bonne installation sous Windows.

    Donc, je te recommande la lecture de cet article.

  10. #10
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour
    Bonjour à tous

    J'ai une configuration différente de la tienne mais j'ai le même problème

    windows 7
    Mysql 5.5 server sur mon PC
    perl 5.10 avec cygwin

    en plus je n'arrive pas à installer un client mysql en compilant les sources ...mais ça c'est pour un autre forum ...d'ailleurs je ne trouve pas le mysql_config ...l'un implique sûrement l'autre

    Je me demande s'il faut nécessairement Active state pour utiliser PPM et ne plus passer par CPAN ?
    Et une fois que j'ai installé le module DBD avec PPM comment le faire reconnaitre par perl sous Cygwin ?

    je trouve que ça devient compliqué pour un module élémentaire

  11. #11
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Salut

    Est-ce que tu as finalement réussi à installer ton module suite au post que je t'ai mis sur le forum d'installation de MYSQL

    j'ai toujours la même erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBD/mysql/mysql.dll' for module DBD::mysql: No such file or directory at /usr/lib/perl5/5.10/i686-cygwin/DynaLoader.pm line 200.
     at (eval 3) line 3
    Compilation failed in require at (eval 3) line 3.
    Perhaps a required shared library or dll isn't installed where expected
    si quelqu'un à une idée je suis preneur

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Je n'ai pas encore testé.
    Je vais faire cela à tête reposé dans la soirée, mes tentatives d'hier sont restés infructueuses.

  13. #13
    Membre actif
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 164
    Points : 218
    Points
    218
    Par défaut
    Pour ma part, travaillant sous Windows, j'ai installé DBD-mysql à l'aide de PPM (Perl Package Manager)(comme le dit Djibril) et tout marche au poil.

  14. #14
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    @nidroc
    effectivement tu as raison sous windows avec PPM ou même CPAN ça fonctionne très bien.
    Par contre nous sommes dans un environnement avec cywgin
    c'est là qu'était la difficulté
    Pour ma part le problème est résolu cf topic sur le même sujet dans le forum d'installation de mysql

Discussions similaires

  1. Probléme d'installation DBD:mysql
    Par saharbrioi dans le forum Modules
    Réponses: 6
    Dernier message: 24/04/2009, 13h53
  2. Problème DBD MySQL
    Par Toomaaaaa dans le forum SGBD
    Réponses: 4
    Dernier message: 15/10/2008, 10h12
  3. Installation du module DBD::mysql
    Par Bahan_auboulot dans le forum Modules
    Réponses: 3
    Dernier message: 30/07/2008, 17h20
  4. problème avec le module DBI
    Par vbcasimir dans le forum SGBD
    Réponses: 6
    Dernier message: 08/10/2005, 12h48
  5. Installer le module DBI et DBD::MySQL
    Par piloupy dans le forum SGBD
    Réponses: 3
    Dernier message: 26/07/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo