mysql - 乘客错误 "library not loaded"

标签 mysql ruby-on-rails passenger

从 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/

相关文章:

MYSQL存储过程、案例

php - Mysql 查询 SUM 将每个结果相加?

推送到 heroku 后 CSS 不工作,但在本地主机上工作

ruby-on-rails - OmniAuth 和 Devise,如何设置可选密码

mysql - Docker Passenger Dashboard 显示 MySQL 无法连接到套接字

ruby-on-rails - 如何在 Ubuntu 11(在 VPS 服务器上)上使用 Apache2 安装Passenger 3.0.11?

mysql - 如何将 Access 子窗体的显示限制为 10?

mysql - 有没有办法使用 MYSQL 中的 max() 函数创建多列?

ruby-on-rails - 数据库、货币建模、本地化策略

process - 乘客进程已经在运行?但它不是