Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 14 sur 14
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2008
    Messages : 70
    Points : 20
    Points
    20

    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 :
    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 :
    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 :
    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 :
    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
    15 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 15 906
    Points : 483 796
    Points
    483 796

    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 :
    1
    2
    use warnings; 
    use strict;

    Voilà

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  3. #3
    Expert Confirmé
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 803
    Points : 2 583
    Points
    2 583

    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 à l'essai
    Homme Profil pro
    Inscrit en
    juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2008
    Messages : 70
    Points : 20
    Points
    20

    Par défaut

    Bonjour,

    J'ai trouvé le mysql_config.pl, je l'ai ajouté au $PATH windows ainsi qu'un autre dossier:
    Code :
    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 :
    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 Expert Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    955
    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 : 955
    Points : 1 091
    Points
    1 091

    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
    Expert Confirmé
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 803
    Points : 2 583
    Points
    2 583

    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
    15 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 15 906
    Points : 483 796
    Points
    483 796

    Par défaut

    Essayez d'installer le module via ppm si vous êtes sous Windows.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2008
    Messages : 70
    Points : 20
    Points
    20

    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
    15 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 15 906
    Points : 483 796
    Points
    483 796

    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.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  10. #10
    Membre Expert Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    955
    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 : 955
    Points : 1 091
    Points
    1 091

    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 Expert Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    955
    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 : 955
    Points : 1 091
    Points
    1 091

    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 :
    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 à l'essai
    Homme Profil pro
    Inscrit en
    juillet 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2008
    Messages : 70
    Points : 20
    Points
    20

    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 Michel
    Inscrit en
    juillet 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 164
    Points : 199
    Points
    199

    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 Expert Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    mai 2002
    Messages
    955
    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 : 955
    Points : 1 091
    Points
    1 091

    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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •