【发布时间】:2014-10-04 12:36:02
【问题描述】:
当我尝试下面的 perl 脚本时,我得到了“perl:symbol 查找错误”。看起来如果我目前修改 PATH 可以解决问题。但我不确定我应该将什么库带到 PATH 中。请让我知道如何解决此问题,如果您对此问题有任何不同的解决方案或解决方法,请随时分享。
[root@localhost]# ./create_defs.pl --user root --password amma --db=d1 --table=tbl1
**perl: symbol lookup error: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so: undefined symbol: mysql_init**
[root@localhost]# ll /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so
-r-xr-xr-x 1 root root 333965 Sep 12 13:05 /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so
[root@localhost]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
来自评论
这是我服务器中的 perl 版本,我该如何解决这个问题?
[root@localhost lib]# perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi
来自评论
感谢您的回复。以下是我用来安装的命令
perl -MCPAN -e 'install Bundle::DBI'
perl -MCPAN -e 'install DBD::mysql'
perl -MCPAN -e 'install Bundle::DBD::mysql'
perl -MCPAN -e 'DBI' perl -MCPAN -e 'DBD::mysql'
perl -MCPAN -e 'install perl-DBD-MySQL'
install Bundle::Mysql
以下是我使用的命令,请指导我如何清除所有perl模块并重新安装。
【问题讨论】:
-
可能有错误。首先在你的脚本中有
use strict;。二是mysql驱动安装有错误。探测find / -name mysql.so -
@DenisKohl - OP 的帖子显示
mysql.so文件确实存在。在这种性质的a previous question 中指出,此错误通常是由正在为与当前运行的 Perl 版本不同的版本编译的模块引起的。 -
[root@localhost lib]# perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi 这是我服务器中的 perl 版本,我该如何解决这个问题.
-
DBD::MySQL perl 模块似乎安装不正确,或者与安装的 mysql 版本不匹配。什么Linux发行版。 DBD::MySQL 是如何安装的?
-
我在 cpan cpan[1] 的帮助下完成了 DBD::mysql 的安装> force install DBD::mysql 结果:运行 make install 在 blib/arch 中找到的文件:在 blib/lib 中安装文件进入依赖于架构的库树安装 /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so 将安装信息附加到 /usr/lib64/perl5/5.8.8 /x86_64-linux-thread-multi/perllocal.pod CAPTTOFU/DBD-mysql-4.028.tar.gz /usr/bin/make install -- 好的,我又做了同样的事情,但仍然有同样的问题。