0

我将 MySQL 5.6.10 安装到 Mac OSX 10.8.2 的 /usr/local/mysql-5.6.10-osx10.7-x86_64/ 中。然后我尝试运行一个使用 DBI 和 DBD::mysql 连接到 MySQL 数据库的 Perl 程序。我收到以下错误:

install_driver(mysql) failed: Can't load '/Users/chap/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/darwin-2level/auto/DBD/mysql/mysql.bundle' 
for module DBD::mysql: dlopen(/Users/chap/perl5/perlbrew/perls/perl-
5.16.1/lib/site_perl/5.16.1/darwin-2level/auto/DBD/mysql/mysql.bundle, 
1): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib

Perhaps a required shared library or dll isn't installed where expected

(当我使用“brew”(与 perlbrew 无关)将 mysql 5.5 安装到它自己的目录 /usr/local/Cellar/ 时,这工作正常。由于 brew 还不知道 5.6,我手动安装了它。)

我能够启动 mysqld 并从 mysql 命令行成功连接。这个错误是否表明 Perl 的 DBD::mysql 模块有问题?它是最新的;也许它不能与 MySql 5.6 对话?

谢谢!

4

2 回答 2

1

我在 Mac 上安装 DBD::mysql 时遇到了几个问题,我发现以下内容可以在 Mac OSX 10.6.8 上使用 Perl 5.16.1 和 MySQL 5.5.27,其中 mysql 安装在 /usr/local/ 中。请仔细检查以下命令中使用的任何路径和用户名。

export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH


curl -kL http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.021.tar.gz > DBD-mysql-4.021.tar.gz
gunzip -c DBD-mysql-4.021.tar.gz | tar xopf - 

cd DBD-mysql-4.021 && perl ./Makefile.pl --testuser root --libs="-L/usr/local/mysql/lib -lmysqlclient -lpthread"

install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib blib/arch/auto/DBD/mysql/mysql.bundle

make test
sudo make install

然后检查连接(假设您仍然启用了测试数据库和匿名用户)

perl -e "use DBD::mysql; my $dbh = DBI->connect('dbi:mysql:test:localhost::3306:mysql_socket=/tmp/mysql.sock'); $dbh->disconnect();"
于 2013-03-09T16:12:38.580 回答
-1

此人通过手动安装 DBD::mysql 和 DBI 而不是通过 CPAN 解决了​​您的问题:

http://forums.mysql.com/read.php?51,281769,282127#msg-282127

于 2013-03-08T05:25:04.250 回答