[英]perl: symbol lookup error: /usr/local/lib/perl/5.10.1/auto/DBD/mysql/mysql.so: undefined symbol: mysql_init
我试图在程序中连接perl和mysql,但收到错误:perl:符号查找错误:/usr/local/lib/perl/5.10.1/auto/DBD/mysql/mysql.so:未定义符号:mysql_init。 请指导。
我已经通过xampp安装了mysql,并在终端上使用xampp(/ opt ...命令)运行它。 Mysql从终端成功运行,但是我无法通过perl程序获取值。
我正在运行的Perl程序是:
#!/usr/bin/perl -w
use DBI;
$dbh = DBI->connect('dbi:mysql:first','root','shaifu')
or die "Connection Error: $DBI::errstr\n";
$sql = "select * from q";
$sth = $dbh->prepare($sql);
$sth->execute
or die "SQL Error: $DBI::errstr\n";
while (@row = $sth->fetchrow_array) {
print "@row\n";
}
其中第一个是数据库,q是表。
DBI和DBD也分别作为perl -e'使用DBI'和perl -e'使用DBD :: mysql;'安装。 在终端上不返回任何内容。
请帮我解决问题。
好的,我将切断这种效率低下的信息查询过程,然后猜测是什么问题。
/usr/local/lib/perl/5.10.1/auto/DBD/mysql/mysql.so:未定义符号:mysql_init
这意味着无法找到由auto/DBD/mysql/mysql.so
依赖的库之一,因此
ldd /usr/local/lib/perl/5.10.1/auto/DBD/mysql/mysql.so
将显示类似
...
libmysqlclient.so.18 => not found
这意味着加载器找不到libmysqlclient.so.18
。 这可能意味着
yum install community-mysql-libs
修复此问题,例如在Fedora中。 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/path/to/libmysqlclient
,假设您的libmysqlclient.so
位于/path/to/libmysqlclient
/sbin/ldconfig -n /path/to/libmysqlclient
将/path/to/libmysqlclient
添加到系统的库搜索路径中,该目录包含libmysqlclient.so*
。 顺便说一句,如果可能的话,您应该始终通过Linux发行版的软件包管理器安装所需的任何软件,这可以避免几乎所有这些令人讨厌的依赖性问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.