Se Perl informar que não pode encontrar o módulo
../mysql/mysql.so, então o problema mais
provável é que o Perl não pode localizar a biblioteca
compartilhada libmysqlclient.so.
Você pode corrigir isto por qualquer um dos seguintes métodos:
Compile a distribuição DBD-mysql com
perl Makefile.PL -static -config em vez
de perl Makefile.PL.
Copie libmysqlclient.so para a
diretório onde sua bibliotecas compartilhadas estão
localizadas (provavelmente /usr/lib ou
/lib).
No Linux você pode adicionar o caminho do diretório onde
libmysqlclient.so está localizado ao
arquivo /etc/ld.so.conf.
Adicione o caminho do diretório onde
libmysqlclient.so está localizada à
variável de ambiente LD_RUN_PATH.
Se voce receber os seguintes erros de
DBD-mysql, você provavelmente está usando
gcc (ou usando um binário antigo compilado
com gcc):
/usr/bin/perl: can't resolve symbol '__moddi3' /usr/bin/perl: can't resolve symbol '__divdi3'
Adicione -L/usr/lib/gcc-lib/... -lgcc ao
comando de ligação quando a biblioteca
mysql.so estiver construída (verifique a
saída de make para
mysql.so quando você compilar o cliente
Perl). A opção -L deve especificar o
caminho do diretório onde libgcc.a está
localizada no seu sistema.
Outra causa deste problema pode ser que Perl e o MySQL não são
compilados com gcc. Neste caso, você pode
resolver o problema compilando ambos com gcc.
Se você receber o seguinte erro de DBD-mysql
quando executar o teste:
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.
significa que você precisa adicionar a biblioteca compactada,
-lz, a sua linha de ligação. Isto pode ser
feito com a seguinte alteração no arquivo
lib/DBD/mysql/Install.pm:
$sysliblist .= " -lm";
Altere esta linha para:
$sysliblist .= " -lm -lz";
Depois disto, você deve executar 'make realclean' e proceder com o instalação desde o início.
Se você quiser usar o módulo Perl em um sistema que não
suporta ligação dinâmica (como SCO) você pode gerar uma
versão estática do Perl que inclui DBI e
DBD-mysql. O modo que isto funciona é que
você gera uma versão do Perl com o çodigo
DBI ligado e instalado no topo do seu Perl
atual. Entao você o utiliza para construir uma versão do Perl
que adicionalmente tem o código DBD ligado
em si, e instale-o.
No SCO, você deve ter as seguintes variáveis de ambiente configuradas:
shell>LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/libou shell>LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:\/usr/progressive/lib:/usr/skunk/libshell>LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:\/usr/progressive/lib:/usr/skunk/libshell>MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:\/usr/skunk/man:
Primeiro crie um Perl que inclui um módulo
DBI ligado estaticamente executando estes
comandos no diretório onde a sua distribuição
DBI está localiada:
shell>perl Makefile.PL -static -configshell>makeshell>make installshell>make perl
Então você deve intalar o novo Perl. A saída de make
perl indicará o comando make exato
que você precisará executar para realizar a instalação. No
SCO, isto é make -f Makefile.aperl inst_perl
MAP_TARGET=perl.
A seguir use o Perl récem criado para criar outro Perl que
também inclui uma DBD::mysql estaticamente
ligado rodando estes comandos no diretório onde sua
distribuição DBD-mysql está localizada:
shell>perl Makefile.PL -static -configshell>makeshell>make installshell>make perl
Finalmente você deve instalar este novo Perl. Novamente, a
saída de make perl indica o comando a usar.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
