paranitips

Never stop learning! がモットーのゆるふわエンジニアブログ

railsを起動しようとしたらlibmysqlclient.18.dylib (LoadError)っていわれた

railsサーバを起動しようとしたらmysqlまわりのエラーが出て起動できず。。

$ rails s
/Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2.rb:8:in `require': dlopen(/Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/2.0.0/gems/mysql2-0.3.16/lib/mysql2.rb:8:in `<top (required)>'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.9.4/lib/bundler/runtime.rb:76:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.9.4/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.9.4/lib/bundler/runtime.rb:72:in `each'
...

なんかrubyのgemで変なとこ向いてて読み込みミスってるので、シンボリックリンクを張って対応します。

まず、インストールしているmysqllibmysqlclient.18.dylibを探します。

私のMacmysqlはHomebrewでインストールしたので、詳細を確認します。

$ brew info mysql
mysql: stable 5.7.9 (bottled)
Open source relational database management system
https://dev.mysql.com/doc/refman/5.7/en/
Conflicts with: mariadb, mysql-cluster, mysql-connector-c, percona-server
/usr/local/Cellar/mysql/5.6.23 (9686 files, 339M)
  Poured from bottle
...

ディレクトリがわかったので、エラーになってる箇所にシンボリックリンクを張ります。

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

以上でOKです。

参考