25
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Library not loaded: libmysqlclient.18.dylib (LoadError) の対処

Last updated at Posted at 2016-05-09

結論

MySQL のバージョンが 5.7 になったのが原因。
MySQL 5.7 には libmysqlclient.20.dylib, MySQL 5.6 には libmysqlclient.18.dylib がついてくるので、MySQL 5.6 にダウングレードすることで対処する。

brew uninstall mysql
brew install mysql@5.6

環境

  • Homebrew 0.9.9
  • OS X El Capitan 10.11.4
  • MySQL 5.7.11 (installed with Homebrew)
  • Ruby 1.9.3-p591
  • Rails 3.1.12

エラーの内容

rails を起動させようとすると下記のエラーになる。長いので途中に改行を入れている。

/xxxxx/.bundle/ruby/1.9.1/gems/activesupport-3.1.12/lib/active_support/dependencies.rb:240:in `require':
    dlopen(/xxxxx/.bundle/ruby/1.9.1/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle, 9):
        Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.18.dylib (LoadError)
  Referenced from: /xxxxx/.bundle/ruby/1.9.1/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle
  Reason: image not found - /xxxxx/.bundle/ruby/1.9.1/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle

要は /usr/local/opt/mysql/lib/libmysqlclient.18.dylib が読み込めないと。

試しに find /usr -name libmysqlclient.18.dylib なんてしてみたけど、そもそも libmysqlclient.18.dylib がなかった。

先行記事を読んでみる

MacにてRailsでMysqlを使おうとすると『 9): Library not loaded: libmysqlclient.18.dylib (LoadError) 』が発生する場合の対策

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib で解決したとのことだが、今回は手元に libmysqlclient.18.dylib がない。

アップデートした El Capitan で Library not loaded: libmysqlclient.18.dylib (LoadError) と出る

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib で解決したとのことだが、今回は手元に libmysqlclient.18.dylib がない。

Library not loaded: /usr/local/lib/libmysqlclient.18.dylibのエラーの解決

libmysqlclient.18.dylib がないという同様の状況だが、たまたま保有していた libmysqlclient.18.dylib のバイナリを使うことで解決している。今回は(ry

mysql - Create a symlink for the libmysqlclient.18.dylib library - Stack Overflow

1 位の回答が MySQL の 5.7 から 5.6 へのダウングレードを薦めている。これはいけそう。

結論

brew uninstall mysql
brew install mysql@5.6

で MySQL をダウングレードする。

MySQL 5.6 が入ると自動で /usr/local/lib/libmysqlclient.18.dylib が置かれるので、エラーが解消する。
必要に応じて bundle install し直すといいかもしれない。

25
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?