Problemas Usando a Interface Perl DBI
/DBD
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
comperl Makefile.PL -static -config
em vez deperl 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 ambienteLD_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 MariaDB 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 MariaDB 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.