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/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:
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 -config
shell>make
shell>make install
shell>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 -config
shell>make
shell>make install
shell>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.