LoginSignup
9
9

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-12-28

■環境
MacOSX 10.11.2
端末:MacBookAir
Homebrew 0.9.5
Ruby 2.2.2
Rails 4.2.3

Macでrailsのmysqlを起動したら、以下のエラーが起きて詰まった。

$ bundle exec rake db:migrate
rake aborted!
LoadError:dlopen(/Users/username/rails/app_name/vendor/bundle/ruby/2.2.0/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle, 
9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib ...

解決策をググると、シンボリックリンクにて、適切な場所にlibmysqlclient.18.dylibを設置すればよいと書いてある。
引用元:http://qiita.com/w7tree/items/656b5d3e6a6f0a0b475e

以下を実行する。

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

上記により、/usr/lib/libmysqlclient.18.dylibというリンクのパスで、/usr/local/mysql/libの中のlibmysqlclient.18.dylibファイルにアクセスできるようになるはず。

すると以下のように権限がないとエラーになる。
/usr/lib/libmysqlclient.18.dylib: Operation not permitted

権限がないとエラーが出るが、chown~で権限を与えたり、rootでログインしてもOperation not permittedが出る。ここから、どこまでググっても良い記事がなかったので、とりあえず、brew doctorで出た警告に関して、すべて対応する。しかし、上記のエラーは解決されない。

落ち着いて、/usr/local/の中を見るとmysqlフォルダーがないことに気づいた。次にエラーメッセージの通り、/usr/local/の中のlibフォルダーを見たが、ここにもそもそもlibmysqlclient.18.dylibがないことに気づいた(libmysqlclient.20.dylibはあった)。なぜかrake db:migrateしようとしていたアプリのファイルの中に、libmysqlclient.18.dylibが存在したため、libmysqlclient.18.dylibをmvコマンドでusr/local/のlibフォルダーに移動すると解決した。

■考察
エラーメッセージを元にググり、解決策をそのままコピペしたが上手くいかなかった。これを見てくださった人が本エラーに陥ったとして、シンボリックリンクの解決策でも上手くいかない場合は、そもそもlibmysqlclient.18.dylibというファイルは、どこのlib(ライブラリーフォルダー)に入っているか確認することが重要だと思う。適切な場所にある場合は、シンボリックリンクで行けるのだと思う。

■参考
・libmysqlclient.18.dylibのエラーに関して
http://ja.stackoverflow.com/questions/18922/rails%E3%81%ABmysql%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6rake-dbcreate%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95
http://qiita.com/w7tree/items/656b5d3e6a6f0a0b475e
・シンボリックリンクに関して
http://qiita.com/pugiemonn/items/e5fb508df690a323ee14
・homebrewに関して
http://qiita.com/omega999/items/6f65217b81ad3fffe7e6

9
9
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
9
9