Sommaire 27 Historique des changements MySQL
2.7 Commentaires sur l'installation de Perl
Le support MySQL par Perl est fournis grâce à l'interface DBI
/ DBD
. Cette interface requiert Perl Version 5.6.0 ou plus récent. Elle fonctionnera pas si vous avez une autre version plus ancienne de Perl.
Si vous voulez utiliser les transactionsa vec Perl DBI
, vous devez installer DBD::mysql
version 1.2216 ou plus récent. La version 2.9003 ou plus récent est recommandée.
Notez que si vous utilisez la bibliothèque client MySQL 4.1, vous devrez utiliser DBD::mysql
2.9003 ou plus récent.
Depuis la version 3.22.8, le support de Perl n'est plus inclut dans les distribution de MySQL. Vous pouvez obtenir les modules requis sur le site http://search.cpan.org pour Unix, ou sur le site de ActiveState (fichiers ppm
) pour Windows. La section suivante décrit comment faire.
Le support de MySQL par Perl doit être installé si vous voulez exécuter les scripts de tests de performances. La suite de tests MySQL .
2.7.1 Installer Perl sur Unix
Le support Perl de MySQL requièrt que vous ayez installé le support de programmation de clients pour MySQL. Si vous avez installé MySQL à partir de fichiers RPM
, les programmes clients sont dans le RPM
client, mais le support de la programmation de clients est dans le RPM
des développeurs. Assurez−vous d'avoir installé le dernier RPM
.
Si vous voulez installer le support Perl, les fichiers dont vous avez besoin sont disponible sur la bibliothèque CPAN (Comprehensive Perl Archive Network) à http://search.cpan.org .
Le moyen le plus facile pour installer le module Unix de Perl et d'utilise le module CPAN
. Par exemple :
shell> perl −MCPAN −e shell cpan> install DBI
cpan> install DBD::mysql
L'installation de DBD::mysql
effectue de nombreux tests. Ces tests requièrent une connexion local au serveur MySQL, en tant qu'utilisateur anonyme, sans mot de passe. Si vous avez supprimé l'accès anonyme, ou assigné des mots de passe, les tests échoueront. Vous pouvez utiliser force install DBD::mysql
pour ignorer ces tests. DBI
requiert le module Data::Dumper
. Il peut être déjà installé. Si non, vous devez l'installer avant d'installer DBI
.
Il est aussi possible de télécharger la distribution module sous la forme d'une archive tar
compressée, et de compiler manuellement les modules. Par exemple, pour décompresser et construire la distribution DBI
, utilisez cette procédure :
Décompressez la distribution dans le dossier courant :
shell> gunzip < Data−Dumper−VERSION.tar.gz | tar xvf −
Cette commande crée un dossier appelé Data−Dumper−VERSION
.
•
Mettez vous dans le répertoire racine de la distribution décompressée :
shell> cd DBI−VERSION
•
Construisez la distribution et compilez tout :
shell> perl Makefile.PL shell> make
shell> make test shell> make install
•
La commande make test
est importante car elle vérifie que le module fonctionne. Notez que quand vous exécutez cette commande durant l'installation de Msql−Mysql−modules
pour tester le code de l'interface, le serveur MySQL doit être en marche sinon le test échouera.
Il est bon de reconstruire et réinstaller la distribution Msql−Mysql−modules
à chaque fois que vous
réinstallez une nouvelle version de MySQL, particulièrement si vous avez des problèmes avec vos scripts DBI
après avoir avoir mis à jour MySQL.
Si vous n'avez pas le droit d'installer des modules Perl dans le dossier système ou que vous voulez installer des modules locaux de Perl, la référence suivante pourra vous aider :
http://www.iserver.com/support/contrib/perl5/modules.html
Regardez le paragraphe ``Installing New Modules that Require Locally Installed Modules.''
2.7.2 Installer ActiveState Perl sur Windows
Pour installer le module DBD
MySQL avec ActiveState Perl sous Windows, vous devez faire ce qui suit :
Obtenez ActiveState Perl à partir de http://www.activestate.com/Products/ActivePerl/ et installez le.
•
Ouvrez un terminal DOS.
•
Si requis, définissez la variable HTTP_proxy. Par exemple, vous pouvez faire :
set HTTP_proxy=my.proxy.com:3128 • Démarrez le programme PPM : C:\> c:\perl\bin\ppm.pl • Installez DBI
, si ce n'est pas déjà fait :
ppm> install DBI
•
Si cela fonctionne, exécutez la commande suivante :
install \
ftp://ftp.de.uu.net/pub/CPAN/authors/id/JWIED/DBD−mysql−1.2212.x86.ppd
•
Ce qui suit devrait fonctionner avec la version 5.6 d'ActiveState Perl.
Si ce qui précède ne veut pas fonctionner, vous devez à la place installer le pilote MyODBC
et vous connecter au serveur MySQL via ODBC :
use DBI;
$dbh= DBI−>connect("DBI:ODBC:$dsn","$utilisateur","$motdepasse") || die "Obtenu l'erreur $DBI::errstr lors de la connexion à $dsn\n";
2.7.3 Problèmes lors de l'utilisation des interfaces Perl DBI et DBD
Si Perl vous informe qu'il ne peut trouver le module ../mysql/mysql.so
, il se trouve probablement que Perl n'arrive pas à trouver la bibliothèque partagée libmysqlclient.so
. Vous pouvez corriger cela en suivant l'une des méthodes suivantes :
Compilez la distribution Msql−Mysql−modules
avec perl Makefile.PL −static −config
au lieu de perl Makefile.PL
.
•
Copiez libmysqlclient.so
dans le dossier où se situent vos autres bibliothèques partagées (souvent /usr/lib
ou /lib
).
•
Modifiez l'option −L
utilisée pour compiler DBD::mysql
pour refléter le chemin correct de
libmysqlclient.so
.
•
Sous Linux vous pouvez ajouter le chemin vers le dossier dans lequel se trouve
libmysqlclient.so
au fichier /etc/ld.so.conf
.
•
Ajoutez le chemin complet vers le dossier où se situe libmysqlclient.so
à la variable d'environnement LD_RUN_PATH
.
•
Notez que vous aurez aussi besoin de modifier les options −L
s'il y a d'autres bibliothèques que le linker ne peut trouver. Par exemple, si le linker ne peut trouver libc
comme il est dans /lib
et que la commande de link spécifie −L/usr/lib
, modifiez l'option −L
en −L/lib
ou ajoutez l'option −L/lib
à la commande de link existante.
Si vous obtenez l'erreur suivante de DBD−mysql
, vous utilisez probablement gcc
(ou un vieux binaire compilé avec gcc
) :
/usr/bin/perl: can't resolve symbol '__moddi3' /usr/bin/perl: can't resolve symbol '__divdi3'
Ajoutez −L/usr/lib/gcc−lib/... −lgcc
à la commande de liaison lorsque la bibliothèque mysql.so
est construite (vérifiez l'affichage de make
concernant mysql.so
quand vous compilez le client Perl). L'option −L
doit spécifier le chemin vers le dossier où se situe libgcc.a
sur votre système.
Une autre cause du problème peut être que Perl et MySQL ne sont pas tous deux compilés avec gcc
. Dans ce cas là, vous devrez faire en sorte qu'ils le soient. Si vous obtenez les erreurs suivantes de la part de Msql−Mysql−modules
quand vous exécutez ces tests :
t/00base...install_driver(mysql) failed:
Can't load '../blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol:
uncompress at /usr/lib/perl5/5.00503/i586−linux/DynaLoader.pm line 169.
cela signifie que vous avez besoin d'inclure la bibliothèque dynamique, −lz, dans la ligne de liaison. Cela peut se faire en changeant ce qui suit dans lib/DBD/mysql/Install.pm
:
$sysliblist .= " −lm";
en
$sysliblist .= " −lm −lz";
Après cela, vous devez exécuter 'make realclean' et reprendre l'installation dès le début.Si vous voulez installer DBI
sur SCO, vous devez éditer le fichier Makefile
de DBI−xxx
et chaque sous−dossier. Notez que gcc
doit être en version 2.95.2 ou plus récente :
ANCIEN: NOUVEAU: CC = cc CC = gcc
CCCDLFLAGS = −KPIC −W1,−Bexport CCCDLFLAGS = −fpic CCDLFLAGS = −wl,−Bexport CCDLFLAGS = LD = ld LD = gcc −G −fpic
LDDLFLAGS = −G −L/usr/local/lib LDDLFLAGS = −L/usr/local/lib LDFLAGS = −belf −L/usr/local/lib LDFLAGS = −L/usr/local/lib LD = ld LD = gcc −G −fpic
OPTIMISE = −Od OPTIMISE = −O1 OLD:
CCCFLAGS = −belf −dy −w0 −U M_XENIX −DPERL_SCO5 −I/usr/local/include NEW:
CCFLAGS = −U M_XENIX −DPERL_SCO5 −I/usr/local/include
Ceci est dû au fait que le chargeur dynamique de Perl ne va pas charger les modules DBI
, s'ils sont compilés avec icc
ou cc
.
Si vous voulez utiliser le module de Perl sur un système qui ne supporte pas les liaisons
dynamiques (comme Caldera/SCO) vous pouvez générer une version statique de Perl incluant DBI
et
DBD−mysql
. L'approche est de générer une version de Perl avec le code de DBI
lié et de l'installer au dessus de votre Perl courant. Puis vous utilisez cette version pour en créer à nouveau une autre qui comporte le code de DBD
lié et d'installer cette version ci.
Sur Caldera (SCO), vous devez définir les variables d'environnement suivantes :
shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib ou : shell> LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:\ /usr/progressive/lib:/usr/skunk/lib shell> LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:\ /usr/progressive/lib:/usr/skunk/lib shell> MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:\ /usr/skunk/man:
D'abord, créez un Perl incluant un DBI
lié statiquement en exécutant des commandes dans le dossier où se situe votre distribution DBI
:
shell> perl Makefile.PL −static −config shell> make
shell> make install shell> make perl
Ensuite, vous devez installer le nouveau Perl. Les affichages de make perl
vous indiqueront les commandes make
exactes que vous aurez besoin d'exécuter pour faire l'installation. Sur Caldera (SCO), il s'agit de make −f Makefile.aperl inst_perl MAP_TARGET=perl
.Puis, utilisé le Perl qui vient d'être créé pour en créer un nouveau qui inclut un DBD::mysql
lié statiquement en exécutant ces commandes dans le dossier où votre distribution de Msql−Mysql−modules
se situe :
shell> perl Makefile.PL −static −config shell> make
shell> make install shell> make perl
Finalement, vous devez installer ce nouveau Perl. Une fois de plus, l'affichage de make perl
vous indiquera la commande à utiliser.
Ce chapitre fournit un tutoriel d'introduction à MySQL en montrant comment utiliser le client mysql
pour créer et utiliser une simple base de données. mysql
(quelques fois nommé ``moniteur terminal'' ou juste ``moniteur'') est un programme interactif qui vous permet de vous connecter à un serveur MySQL, exécuter des requêtes et voir les résultats. mysql
peut aussi être utilisé en mode batch : vous placez vos requêtes dans un fichier, puis vous faites exécuter à mysql
le contenu de ce fichier. Les deux manières d'utiliser mysql
sont expliquées ici. Pour voir une liste d'options fournies par mysql
, invoquez−le avec l'option −−help
:
shell> mysql −−help
Ce chapitre assume que mysql
est installé sur votre machine et qu'un serveur MySQL est disponible pour que vous vous y connectiez. Si ce n'est pas le cas, contactez votre administrateur MySQL. (Si
vous êtes l'administrateur, vous aurez besoin de consulter d'autres sections de ce manuel.)
Ce chapitre décrit le processus d'installation et d'utilisation d'une base de données en entier. Si vous n'êtes intéressés que par l'accès à une base de données existante, vous pouvez sauter les sections décrivant la création de la base et des tables.
Ce chapitre n'est qu'un tutoriel, beaucoup de détails ne sont pas approfondis. Consultez les sections appropriées du manuel pour plus d'informations sur les sujets abordés.