如何检查Perl模块(DBD::mysql)是否正确安装?



我在Mac OS X Yosemite上使用XAMPP,我正在尝试使用Perl与我的MySQL数据库通信。

这需要两个东西:(1)DBI和(2)mysql驱动模块DBD::mysql。

我在安装DBD::mysql部分时遇到了很多麻烦。然而,在遵循一些在线说明之后,现在看起来像 DBD::mysql已经安装,但我怀疑它是否正确。

终端中,当我加载cpan然后输入"install DBD::mysql"时,它响应,"DBD::mysql是最新的(4.032)"。

从它的外观,然后,它被安装。然而,我担心我所安装的东西足以让它说,"嘿,我安装了!",但不足以让它实际起作用,这就是为什么当我试图用Perl连接到我的数据库时出现错误的原因:

install_driver(mysql) failed: Can't load '/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle
  Reason: image not found at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
 at (eval 6) line 3.
Compilation failed in require at (eval 6) line 3.
Perhaps a required shared library or dll isn't installed where expected
 at login.pl line 9.
相关Perl代码片段:
my $dbh = DBI->connect(          
    "dbi:mysql:dbname=TEST", 
    "root",                          
    "",                          
    { RaiseError => 1 },         
) or die $DBI::errstr;

我正在尝试解决这是否是我安装DBD::mysql的问题,或者如果它是我的Perl代码。

我如何验证我的DBD::mysql的安装是否都是好的?更好的是,我如何才能停止得到这个错误?

谢谢。

您可以将connect()调用包装到eval块中以捕获此错误,但是如果它崩溃,您没有太多选择,可能只是尝试产生更友好的错误消息,然后无论如何都会死亡。

至于为什么你得到错误,试着检查libmysqlclient.18.dylib生活在你的系统。它似乎是在编译DBD::mysql驱动程序期间可以找到的地方,而不是在脚本运行时中找到的。假设它没有被意外卸载,那么将它的目录添加到DYLD_LIBRARY_PATH变量中应该可以工作。我不知道该把路径添加到什么配置中才能使这个添加在OSX上永久存在

相关内容

  • 没有找到相关文章

最新更新