我dbd:mysql
通过安装cpan
。我有以下简单脚本:
#!/usr/bin/perl -U
use DBI;
$ds = 'DBI:mysql:project:localhost'; $user = 'root'; $password = '123456';
$db = DBI->connect($ds, $user, $password) or die("Connection error\n");
$res = $db->prepare("SELECT * FROM root");
$res->execute();
while (my @row = $res->fetchrow_array()) { print $row[0]; }
$res->finish();
$db->disconnect();
当我从终端运行它时,一切都很好。但是当我在浏览器中引用它时,会发生错误。Apache 错误日志:
[错误] [客户端 127.0.0.1] install_driver(mysql)失败:无法为模块 DBD::mysql 加载‘/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle’:dlopen(/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle,1):未加载库:libmysqlclient.18.dylib
[错误] [客户端 127.0.0.1] 引用自:/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
[错误] [客户端 127.0.0.1] 原因:在 /System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm 第 204 行未找到图像。
我安装了mod_perl
并按照说明更改了httpd.conf
:
加载模块 perl_module libexec/apache2/mod_perl.so
Perl 模块 Apache::DBI
但是现在apache无法启动。错误日志:
[错误] 无法为模块 DBD::mysql 加载‘/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle’:dlopen(/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): 未加载库:libmysqlclient.18.dylib\n 引用自:/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle\n 原因:未在 /System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm 第 204 行找到图像。\n 在(eval 6)第 2 行 \n 在(eval 6)第 2 行需要时编译失败。\n
[错误] 无法为服务器 MacBook-Pro-Evgenij.local:0 加载 Perl 模块 DBD::Mysql,退出...
如何解决这个问题呢?
答案1
我在中创建了一个符号链接/usr/lib/
,/usr/local/mysql-5.5.23-osx10.6-x86_64/lib/libmysqlclient.18.dylib
重建dbd:mysql
后一切正常。