从 Passenger(使用 Apache)获取此错误。不知道是什么意思...
dlopen(/path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9):
Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
Referenced from: /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /path/to/myapp/shared/bundle/ruby/1.9.1/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
安装的 Ruby 实际上是 1.9.2,但无论出于何种原因,gems 都位于这个“1.9.1”路径中......
这可能与我使用的是 mysql2
gem 而不是 mysql
有关吗?
或者,它可能与第二行“Library not loaded”有关,看起来它可能正在尝试加载错误的 libmysqlclient.16.dylib
?由于路径 /usr/local/mysql
指向未运行的 mysql 版本。正在运行的 mysql 的版本在 /usr/bin/
中。 我想尝试改变这一点,但我不知道该怎么做!?!
最佳答案
announcement for Ruby 1.9.2说(原文如此)
This version is "librariry compatible version". Ruby 1.9.2 is almost 1.9.1 compatible, so the library is installed in 1.9.1 direcotry.
这就是 ruby 目录被命名为“1.9.1”的原因;这是正常的。
您的 mysql2 gem 实例是针对 /usr/local/mysql/lib/libmysqlclient.16.dylib
库构建的。由于某种原因,该库当前在您系统上的该路径名下不可用(MySQL 已删除/移动/升级?)。
您可能需要重建您的 mysql2 gem 并将其指向您的 MySQL 安装(在 /usr/bin
?):
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config
关于mysql - 乘客错误 "library not loaded",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4254128/