【问题标题】:Rails + MySQL on Mavericks - Library not loaded: libmysqlclient.18.dylib小牛上的 Rails + MySQL - 未加载库:libmysqlclient.18.dylib
【发布时间】:2014-06-20 13:53:32
【问题描述】:

当我在本地主机(OSX Mavericks)上运行 Rails (rails s) 应用程序时,出现此错误

message:/Users/adam/.rvm/gems/ruby-2.0.0-p481/gems/mysql2-0.3.16/lib/mysql2.rb:8:in `require': dlopen(/Users/adam/.rvm/gems/ruby-2.0.0-p481/extensions/x86_64-darwin-13/2.0.0-static/mysql2-0.3.16/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /Users/adam/.rvm/gems/ruby-2.0.0-p481/extensions/x86_64-darwin-13/2.0.0-static/mysql2-0.3.16/mysql2/mysql2.bundle
  Reason: image not found - /Users/adam/.rvm/gems/ruby-2.0.0-p481/extensions/x86_64-darwin-13/2.0.0-static/mysql2-0.3.16/mysql2/mysql2.bundle
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481/gems/mysql2-0.3.16/lib/mysql2.rb:8:in `<top (required)>'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `require'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `each'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `block in require'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `each'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `require'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481@global/gems/bundler-1.6.2/lib/bundler.rb:132:in `require'
    from /Users/adam/rubydev/logistadvise/config/application.rb:7:in `<top (required)>'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481/gems/railties-4.0.0/lib/rails/commands.rb:76:in `require'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481/gems/railties-4.0.0/lib/rails/commands.rb:76:in `block in <top (required)>'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481/gems/railties-4.0.0/lib/rails/commands.rb:73:in `tap'
    from /Users/adam/.rvm/gems/ruby-2.0.0-p481/gems/railties-4.0.0/lib/rails/commands.rb:73:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

我不确定我是如何安装 MySQL 的,但我猜它位于名为 Cellar 的子文件夹中。

这是我的bash_profile 的样子:

MYSQL=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
export PG_DUMP="/Applications/Postgres.app/Contents/MacOS/bin/"
#PATH=$PG_DUMP:$PATH
...

如何解决这个问题?

【问题讨论】:

    标签: mysql ruby-on-rails ruby osx-mavericks


    【解决方案1】:

    我遇到了同样的问题。因为我是用brew安装的,所以DYLD的位置变了。试试这个:

    export DYLD_LIBRARY_PATH=/usr/local/mysql-5.1.67-osx10.6-x86_64/lib:$DYLD_LIBRARY_PATH
    

    首先检查上面的路径是否存在,如下所示,显然相应地调整导出路径:

    ls -1 /usr/local/mysql-5.1.67-osx10.6-x86_64

    您可能会创建一个符号链接或其他东西。这对我来说有点烦人,但使用正确的路径为我解决了这个问题。

    还可以尝试which mysql 检查您的路径中是否有 mysql。如果你没有得到任何输出,显然路径是混乱的。

    【讨论】:

      【解决方案2】:
      sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/ruby-2.0.0-p481/extensions/x86_64-darwin-13/2.0.0-static/mysql2-0.3.16/mysql2/mysql2.bundle
      

      这应该适合你。

      【讨论】:

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