科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道4.10.4 使用PerlDBI/DBD接口的问题

4.10.4 使用PerlDBI/DBD接口的问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如果 Perl 报告它不能找到../mysql/mysql.so模块,那么问题可能是该Perl不能找到共享库文件“libmysqlclient.so”。

作者:天极软件 来源:天极软件 2008年1月16日

关键字: 问题 dbd MySQL

  • 评论
  • 分享微博
  • 分享邮件

如果 Perl 报告它不能找到../mysql/mysql.so模块,那么问题可能是该Perl不能找到共享库文件“libmysqlclient.so”

你可用下列任何一个方法修正它这:

  • perl Makefile.PL -static而非perl Makefile.PL译Msql-Mysql-modules分发。
  • 拷贝libmysqlclient.so到其他共享库文件所在的目录(可能是“/usr/lib”“/lib”)。
  • Linux上,你可以把libmysqlclient.so所在目录的路径名加到“/etc/ld.so.conf”文件中。
  • libmysqlclient.so所在目录的路径名加到LD_RUN_PATH环境变量中。

如果你从DBD-mysql得到下列错误,你可能正在使用gcc(或使用一个旧的用gcc编译的二进制代码):

/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'

“mysql.so”库文件被构造时候,为链接命令加上-L/usr/lib/gcc-lib/... -lgcc(当你编译Perl客户时检查针对“mysql.so”make输出)。-L选项应该指定“libgcc.a”在你系统上所在目录的路径名。

这个问题的另一个原因可能是Perl和MySQL都不是用gcc编译的。在这种情况下,你可以都用gcc编译以解决不匹配。

如果你想要在一个不支持动态链接(象SCO那样)的系统上使用Perl模块,你可以产生包括DBIDBD-mysql的Perl的一个静态版本。这种运行方法是你生成一个链接了DBI代码的Perl版本并在最新的Perl上安装它,然后你使用它来构造附加链接了DBD代码的Perl版本,并且安装它。

在 SCO 上,你必须有下列环境变量设置:

shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib
或
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:

首先, 在DBI分发所在目录下运行下列命令,创造包括一个静态链接的Perl DBI

shell> perl Makefile.PL LINKTYPE=static
shell> make
shell> make install
shell> make perl

然后你必须安装新的Perl。make perl的输出将显示正确的你需要执行施行安装的make的命令。在SCO上,是make -f Makefile.aperl inst_perl MAP_TARGET=perl.

接下来,在Msql-Mysql-modules分发所在目录下,使用刚才创建的Perl来创建同样包括一个静态链接的PerlDBD::mysql的另一个Perl:

shell> perl Makefile.PL LINKTYPE=static 
shell> make 
shell> make install 
shell> make perl

最后, 你应该安装这个新的Perl。而且,make perl的输出指出使用的命令。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章