Kapitel 3: Installation von MySQL 131
3.7.4 Probleme bei der Benutzung von Perl DBI/DBD-Schnittstelle
Wenn Perl ausgibt, dass es das ‘../mysql/mysql.so’-Modul nicht finden kann, liegt das
Problem wahrscheinlich darin, dass Perl die gemeinsam genutzte ‘libmysqlclient.so’ nicht
findet.
Das k¨onnen Sie mit einer der folgenden Methoden beheben:
• Kompilieren Sie die Msql-Mysql-modules-Distribution mit perl Makefile.PL
-static -config statt mit perl Makefile.PL.
• Kopieren Sie libmysqlclient.so in das Verzeichnis, in dem Ihre anderen gemeinsam
genutzten Bibliotheken liegen (wahrscheinlich ‘/usr/lib’ oder ‘/lib’).
• Unter Linux k¨onnen Sie der ‘/etc/ld.so.conf’-Datei den Pfadnamen des Verzeich-
nisses hinzuf¨ugen, in dem ‘libmysqlclient.so’ liegt.
• F¨ugen Sie der LD_RUN_PATH-Umgebungsvariablen den Pfadnamen des Verzeichnisses
hinzu, in dem ‘libmysqlclient.so’ liegt.
Wenn Sie folgende Fehler von DBD-mysql erhalten, benutzen Sie wahrscheinlich gcc (oder
eine alte Bin¨ardatei, die mit gcc kompiliert wurde):
/usr/bin/perl: can’t resolve symbol ’__moddi3’
/usr/bin/perl: can’t resolve symbol ’__divdi3’
F¨ugen Sie -L/usr/lib/gcc-lib/... -lgcc zum Link-Befehl hinzu, wenn die ‘mysql.so’-
Bibliothek gebaut wird (¨uberpr¨ufen Sie die Ausgabe von
make
nach ‘
mysql.so
’, wenn Sie den
Perl-Client kompilieren). Die -L-Option sollte den Pfadnamen des Verzeichnisses angeben,
in dem ‘li/jointfilesconvert/293675/bgcc.a’ auf Ihrem System liegt.
Ein weiterer Grund f¨ur dieses Problem kann sein, dass Perl und MySQL nicht beide mit gcc
kompiliert wurden. In diesem Fall k¨onnen Sie die fehlende
¨
Ubereinstimmung (Mismatch)
durch Kompilieren von beiden mit gcc aufheben.
Wenn Sie folgende Fehler von Msql-Mysql-modules erhalten, wenn Sie die Tests laufen
lassen:
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.
Bedeutet das, dass Sie die Kompressionsbibliothek (-lz) in die Link- Zeile
einschließen m¨ussen. Das kann man durch folgende
¨
Anderung in der Datei
‘lib/DBD/mysql/Install.pm’ tun:
$sysliblist .= " -lm";
¨andern in
$sysliblist .= " -lm -lz";
Danach m¨ussen Sie ’make realclean’ laufen lassen und danach mit der Installation von
Anfang an beginnen.
Wenn Sie das Perl-Modul auf einem System laufen lassen wollen, das dynamisches Linken
nicht unterst¨utzt (wie Caldera/SCO), k¨onnen Sie eine statische Version von Perl erzeugen,
Comentarios a estos manuales