• Aucun résultat trouvé

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.