【问题标题】:What is the reason for the error message "Library not loaded: libmysqlclient.18.dylib"?错误消息“未加载库:libmysqlclient.18.dylib”的原因是什么?
【发布时间】:2011-09-15 16:28:36
【问题描述】:

我没有使用 Perl 的经验,我正在尝试为我正在处理的项目运行 the geo_to_mysql.pl program。除了前几行的数据库、用户名、密码和文件目录路径,我没有对程序进行任何修改。

运行程序时,我不断收到此错误:

install_driver(mysql) 失败:无法加载模块 DBD::mysql: dlopen( /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1):库未加载:libmysqlclient.18.dylib

引用自:/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle

原因:在 /System/Library/Perl/5.10.0/darwin-thread-multi-2level/DynaLoader.pm 第 207 行找不到图像。

在(评估 7)第 3 行

在 (eval 7) 第 3 行的 require 编译失败。

可能所需的共享库或 dll 没有安装在预期的位置

我已经确定我从 CPAN 安装了 MySQL 所需的 DBD,所以我认为这不是问题所在。谁能解释一下这个问题?

【问题讨论】:

  • Perl 的 DBI(数据库接口)模块要求您连接到的每种数据库类型都有一个 DBD(数据库驱动程序)。看起来您缺少 MySQL 的 DBD。它应该可以很容易地从 CPAN 安装,或者作为您系统某个地方的预构建包提供。
  • 我从 CPAN 安装了 DBD::mysql,但我仍然收到完全相同的错误消息...有什么想法吗?再次感谢:)
  • 你编译 DBD::mysql 了吗?运行测试?
  • 你是怎么安装mysql的?如何调用脚本?

标签: mysql perl dynamic-loading


【解决方案1】:

听起来您可能想阅读这篇博文:

http://probably.co.uk/problems-installing-dbdmysql-on-os-x-snow-leopard.html

问题似乎是mysqlclient动态库中没有路径信息。您需要手动修复此问题(如上面的帖子所述)。

一种更便宜的解决方案是将 libmysqlclient 库符号链接或复制到 /usr/lib。

希望这对以后寻找这个问题的人有所帮助。

【讨论】:

  • 另外,请确保您在 perl 中使用正确的 mysql 架构。我正在使用 32 位 perl。我认为 mysql x86_64 无法使用它。
  • 我遇到了完全相同的问题。将 libmysqlclient 复制到 /usr/lib 并重新安装 DBD::mysql 就可以了。
  • 在 OSX Yosemite 上尝试安装 DBD::mysql 时为我工作。我在 /usr/lib 中创建了指向 dylib 的符号链接,一切都很好:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
【解决方案2】:

DBD::mysql 模块需要访问 MySQL 客户端库才能工作。我很惊讶 DBD::mysql 甚至没有安装在您的系统上。你是如何安装 DBD::mysql 模块的?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-10-23
  • 2011-09-17
  • 2017-04-15
  • 2012-05-20
  • 1970-01-01
  • 2016-01-05
  • 2016-02-19
  • 2011-06-01
相关资源
最近更新 更多