読者です 読者をやめる 読者になる 読者になる

【Rails】El Capitanで rails s (DB:MySQL) を実行したらmysql2絡みで起動しない

久しぶりにRailsで何かやろうかな?と思って

$ rails s

を実行したところ、以下の様なエラーが発生。

$ /Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `require': dlopen(/Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib (LoadError)
$  Referenced from: /Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
$  Reason: image not found - /Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
$   from /Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `<top (required)>'
$   from /Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.9.1/lib/bundler/runtime.rb:76:in `require'
$   from /Users/your_name/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.9.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'

以下、省略

El Capitan絡みかなぁ?と思っていたら、思っていた通りEl Capitan絡みだった。

解決

Qiitaに同じような現象で記事があったので、試してみた。

qiita.com

しかし、自分の環境では解決せず。
そして、Stackoverflowを確認したところ、mysql2のgemを入れなおすことで
解決することがわかった。

stackoverflow.com

$ gem uninstall mysql2
$ bundle install
$ ... 省略 ...
$ Installing mysql2 0.3.20 ※2016/03/06時点
$ ... 省略 ....
$ rails s

これで起動させることができました。