OSX v10.6.6上DBD :: MySQL的安装错误

Sco*_*ken 7 mysql perl dbi dbd osx-snow-leopard

我试图让DBD :: MySQL在Snow Leopard上工作(v10.6.6).操作系统附带的默认Perl版本是v5.10.0.由于我已经阅读了64位,我继续下载并安装了64位版本的MySQL(mysql-5.5.8-osx10.6-x86_64).

安装和设置MySQL顺利进行,这是我的配置和版本号供参考.

我使用CPAN下载DBI和DBD :: MySQL驱动程序.然后我:

  • 已安装DBI
  • 设置Makefile.PL
  • 从命令行执行make命令

Makefile.PL表示它将使用以下设置进行编译和测试:

I will use the following settings for compiling and testing:

  cflags        (mysql_config ) = -I/usr/local/mysql/include  -Os -g -fno-common -fno-strict-aliasing -arch x86_64
  embedded      (mysql_config ) = 
  libs          (mysql_config ) = -L/usr/local/mysql/lib -lmysqlclient   -lpthread
  mysql_config  (guessed      ) = mysql_config
  nocatchstderr (default      ) = 0
  nofoundrows   (default      ) = 0
  ssl           (guessed      ) = 0
  testdb        (default      ) = test
  testhost      (default      ) = 
  testpassword  (User's choice) = r00t!
  testsocket    (default      ) = 
  testuser      (User's choice) = root

To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.

Multiple copies of Driver.xst found in: /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/ /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level/auto/DBI/ at Makefile.PL line 907
Using DBI 1.616 (for perl 5.010000 on darwin-thread-multi-2level) installed in /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/
Writing Makefile for DBD::mysql

t/00base....................NOK 2/6#     Tried to use 'DBD::mysql'.          
#     Error:  Can't load '/Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Library not loaded: libmysqlclient.16.dylib
#   Referenced from: /Users/swm/.cpan/build/DBD-mysql-4.018-Pnd2qz/blib/arch/auto/DBD/mysql/mysql.bundle
#   Reason: image not found at /System/Library/Perl/5.10.0/darwin-thread-multi-2level/DynaLoader.pm line 207.
#  at (eval 7) line 2
# Compilation failed in require at (eval 7) line 2.
# BEGIN failed--compilation aborted at (eval 7) line 2.
FAILED--Further testing stopped: Unable to load DBD::mysql
make: *** [test_dynamic] Error 9

I will use the following settings for compiling and testing:

  cflags        (mysql_config ) = -I/usr/local/mysql/include  -Os -g -fno-common -fno-strict-aliasing -arch x86_64
  embedded      (mysql_config ) = 
  libs          (mysql_config ) = -L/usr/local/mysql/lib -lmysqlclient   -lpthread
  mysql_config  (guessed      ) = mysql_config
  nocatchstderr (default      ) = 0
  nofoundrows   (default      ) = 0
  ssl           (guessed      ) = 0
  testdb        (default      ) = test
  testhost      (default      ) = 
  testpassword  (User's choice) = r00t!
  testsocket    (default      ) = 
  testuser      (User's choice) = root

To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.

Multiple copies of Driver.xst found in: /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/ /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level/auto/DBI/ at Makefile.PL line 907
Using DBI 1.616 (for perl 5.010000 on darwin-thread-multi-2level) installed in /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBI/
Writing Makefile for DBD::mysql

它失败了,因为它似乎找不到DBD的mysql.bundle.有人遇到过这个问题吗?或者可以指出我正确的方向下一步尝试什么?我需要DBI/DBD :: MySQL来完成我的新工作,我正忙着寻找解决方案.

提前谢谢了.

小智 14

我通过在/ usr/lib /"中放置一个符号链接到/usr/local/mysql-5.5.8-osx10.6-x86_64/lib/libmysqlclient来解决"未加载库:libmysqlclient.16.dylib"问题. 16.dylib


小智 0

这有点旁白,但我强烈建议在机器上设置一个单独的 perl - 通过 fink / macports 或从源代码 - 并单独保留 Mac 的系统 perl (及其库)。

一旦我在自己的 Mac 上完成了此操作,此后安装模块就很少遇到问题,而且我不必担心因破坏系统使用的 perl 而意外地在我的操作系统中炸出一个漏洞。

如果是我的 Mac,我会从源代码安装一个新的 Perl(Perl 源代码发行版足够智能,可以自行安装,看到它在 Mac 上并将其安全地安装到 /usr/local/bin 中),然后从 e 开始安装 DBD::Mysql (以及您需要的其他模块)。