OSX 10.11上的Rails El Capitan:未加载库:libmysqlclient.18.dylib

Jos*_*eim 11 mysql macos ruby-on-rails

自从我将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'
Run Code Online (Sandbox Code Playgroud)

我发现了其他关于类似问题的帖子,但我在这方面太初学了,自解决以来版本也发生了变化等.

use*_*707 52

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

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)

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

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)

好的'Apple'.

  • libmysqlclient.18.dylib对我来说不存在.我看到的只是libmysqlclient.20.dylib.但是,MySQL-python仍然需要libmysqlclient.18.dylib. (4认同)