尝试访问我的 ruby​​ 项目-与 mysql 相关的 LoadError

Posted

技术标签:

【中文标题】尝试访问我的 ruby​​ 项目-与 mysql 相关的 LoadError【英文标题】:Trying to access my ruby project- LoadError pertaining to mysql 【发布时间】:2011-07-20 16:11:00 【问题描述】:

我正在尝试访问我的第一个 ruby​​ 项目。导航到正确的目录并键入后:

$ 导轨服务器

我收到以下错误消息:

/Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2.rb:7:in require': dlopen(/Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError) Referenced from: /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle Reason: image not found - /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2.rb:7:in' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in require' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:inblock (2 个级别) in require' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in each' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:inblock in require' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in each' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:inrequire' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler.rb:120:in require' from /Users/Rozey/Sites/first_project/config/application.rb:7:in' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:28:in require' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:28:inblock in ' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:27:in tap' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:27:in' 来自脚本/rails:6:in require' from script/rails:6:in'

我之前使用 RVM 安装了 mysql2 gem。我知道可能有一个简单的解决方法,但我是新手,因此感谢您的帮助。

一些额外的信息:

Rozey$ 哪个红宝石 /Users/Rozey/.rvm/rubies/ruby-1.9.2-p180/bin/ruby Rozey$ 哪个mysql /usr/local/mysql/bin/mysql

【问题讨论】:

你是如何安装 MySQL 的,从源代码或 brew 或 ...? 来自mysql.com/downloads/mysql,使用 64 位 DMG 选项。我还使用 RVM 安装了 mysql gem。 好吧,我手头没有针对您的具体问题的解决方案,但解决方案很可能是 install_name_tool 实用程序,它修复了我过去在使用 Gentoo 前缀时遇到的类似问题. 感谢@lebreeze 和@svoop 的建议。我尝试了以下但仍然得到相同的错误 sudo install_name_tool -change /usr/local/mysql/lib/mysql/libmysqlclient.18.dylib /usr/local/mysql/lib/mysql/libmysqlclient.18.dylib /Users/ Rozey/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/mysql2/mysql2.bundle Library not loaded: libmysqlclient.16.dylib error when trying to run 'rails server' on OS X 10.6 with mysql2 gem的可能重复 【参考方案1】:

你看过How to fix "dlopen(/Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib"?

看起来可能是类似的问题

【讨论】:

感谢@lebreeze 和@svoop 提出正确的技术建议。我在输入正确路径时遇到了麻烦,所以我进入了webchat.freenode.net/?channels=rvm 的聊天室,@esparkman 提出了以下解决方案。有效! >sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql-5.5.10-osx10.6-x86_64/lib/libmysqlclient.18.dylib /Users/Rozey/.rvm/gems/ruby-1.9.2- p180/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 然后 >sudo ln /usr/local/mysql-5.5.10-osx10.6-x86_64/bin/mysql /usr/local/mysql/bin/ mysql【参考方案2】:
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/" 

在 bash.profile 中删除它并像魅力一样工作

【讨论】:

我遇到了与使用 mysql2 gem 的问题相同的问题。这解决了它。【参考方案3】:

我尝试了以上所有方法,但都没有奏效。我在另一页 Library not loaded: libmysqlclient.16.dylib error when trying to run 'rails server' on OS X 10.6 with mysql2 gem 上找到了这个,它就像一个魅力:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

【讨论】:

以上是关于尝试访问我的 ruby​​ 项目-与 mysql 相关的 LoadError的主要内容,如果未能解决你的问题,请参考以下文章

与Ruby on Rails中的范围相关联

无法在 bundle install ruby​​ 上安装 mysql2

paypal 与 ruby​​ on rails 集成的“zoid 破坏了所有错误”

使用 Ruby/Chef Recipe for Vagrant 导入 Mysql 数据库

尝试授权服务器到 ruby​​ 中的服务器类型应用程序以访问 Google 日历时授权无效

如何让 XAMPP 的 MySQL 和 Ruby on Rails 在我的 Mac 上协同工作?