尝试访问我的 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:inrequire' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in
block (2 个级别) in require' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:ineach' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in
block in require' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:ineach' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in
require' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler.rb:120:inrequire' 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:inrequire' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:28:in
block in ' 来自 /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:27:intap' from /Users/Rozey/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:27:in
' 来自脚本/rails:6:inrequire' 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的主要内容,如果未能解决你的问题,请参考以下文章
无法在 bundle install ruby 上安装 mysql2
paypal 与 ruby on rails 集成的“zoid 破坏了所有错误”
使用 Ruby/Chef Recipe for Vagrant 导入 Mysql 数据库