【问题标题】:Rails on OSX 10.11 El Capitan: Library not loaded: libmysqlclient.18.dylibOSX 10.11 El Capitan 上的 Rails:未加载库:libmysqlclient.18.dylib
【发布时间】:2016-01-05 19:12:56
【问题描述】:

自从我将 OSX 升级到 10.11 后,我无法再将 MySQL 与我的 Rails 应用程序一起使用:

$ rails s
/Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require': dlopen(/Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle
    from /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
    from /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /Users/josh/.rvm/gems/ruby-2.2.3@a4aa2/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'

我找到了关于类似问题的其他帖子,但我在这方面太初学者了,并且在解决后版本发生了变化等等。

【问题讨论】:

    标签: mysql ruby-on-rails macos


    【解决方案1】:

    打开终端点击我也遇到了同样的问题:

    sudo nano ~/.bash_profile
    

    粘贴以下行:

    MYSQL=/usr/local/mysql/bin
    export PATH=$PATH:$MYSQL
    export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
    

    就是这样。

    【讨论】:

    • 这对我来说没有任何改变。我还关闭了重新打开的终端,以确保它已正确加载。
    • 我今天遇到了类似的问题 - 你查到真相了吗。
    【解决方案2】:

    之前的答案(前 El Capitan),是从 mysql 的 lib 目录中创建一个符号链接,将库文件指向 /usr/lib,如下所示:

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

    但是,由于 OS X 的完整性控制,现在这会产生“不允许的操作”。这可以通过禁用它来解决。然而,一个更简单的解决方案(我可以验证一个有效的解决方案)是将其符号链接到 /usr/local/lib 中:

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

    好老苹果。

    【讨论】:

    • 工作。完美的!谢谢。
    • 需要注意的一点是,如果您在虚拟环境中使用 Python,您可能需要重新创建它或更改路径,因为它可能仍然引用 /usr/lib 版本'不存在。
    • libmysqlclient.18.dylib 对我来说不存在。我看到的只是 libmysqlclient.20.dylib。但是,MySQL-python 仍然需要 libmysqlclient.18.dylib。
    • 找不到这样的文件或目录
    猜你喜欢
    • 2012-05-20
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多