Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > SGBD
SGBD Toutes vos questions sur l'interaction entre Perl et les bases de données (SQL, mysql, postgresql, ORACLE, ...) Avant de poster, veuillez consulter les FAQs perl, les cours Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/02/2010, 20h02   #1
Sethenssen
Futur Membre du Club
 
Homme
Inscription : juillet 2008
Messages : 61
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2008
Messages : 61
Points : 18
Points : 18
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.
Sethenssen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2010, 10h43   #2
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 517
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 517
Points : 31 679
Points : 31 679
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2010, 12h27   #3
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
Citation:
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
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 02h10   #4
Sethenssen
Futur Membre du Club
 
Homme
Inscription : juillet 2008
Messages : 61
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2008
Messages : 61
Points : 18
Points : 18
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
Sethenssen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 15h28   #5
noOneIsInnocent
Membre Expert
 
Avatar de noOneIsInnocent
 
Homme
Inscription : mai 2002
Messages : 928
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 : 928
Points : 1 028
Points : 1 028
Envoyer un message via MSN à noOneIsInnocent
Bonjour

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

merci
noOneIsInnocent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 17h07   #6
estofilo
Modérateur
 
Inscription : octobre 2008
Messages : 1 702
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 702
Points : 2 347
Points : 2 347
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.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 19h11   #7
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 517
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 517
Points : 31 679
Points : 31 679
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 01h39   #8
Sethenssen
Futur Membre du Club
 
Homme
Inscription : juillet 2008
Messages : 61
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2008
Messages : 61
Points : 18
Points : 18
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?
Sethenssen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 12h53   #9
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 517
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 517
Points : 31 679
Points : 31 679
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 09h21   #10
noOneIsInnocent
Membre Expert
 
Avatar de noOneIsInnocent
 
Homme
Inscription : mai 2002
Messages : 928
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 : 928
Points : 1 028
Points : 1 028
Envoyer un message via MSN à noOneIsInnocent
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
noOneIsInnocent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 11h25   #11
noOneIsInnocent
Membre Expert
 
Avatar de noOneIsInnocent
 
Homme
Inscription : mai 2002
Messages : 928
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 : 928
Points : 1 028
Points : 1 028
Envoyer un message via MSN à noOneIsInnocent
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
noOneIsInnocent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 20h53   #12
Sethenssen
Futur Membre du Club
 
Homme
Inscription : juillet 2008
Messages : 61
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juillet 2008
Messages : 61
Points : 18
Points : 18
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.
Sethenssen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 21h20   #13
nibroc
Membre actif
 
Homme Michel
Inscription : juillet 2009
Messages : 158
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 68
Localisation : France

Informations forums :
Inscription : juillet 2009
Messages : 158
Points : 189
Points : 189
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.
nibroc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 09h22   #14
noOneIsInnocent
Membre Expert
 
Avatar de noOneIsInnocent
 
Homme
Inscription : mai 2002
Messages : 928
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 : 928
Points : 1 028
Points : 1 028
Envoyer un message via MSN à noOneIsInnocent
@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
noOneIsInnocent est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h00.


 
 
 
 
Partenaires

Hébergement Web