web-dev-qa-db-ja.com

エルキャピタンのアップグレード:ライブラリがロードされていません:/usr/local/lib/libmysqlclient.18.dylib

エラー:

/Users/askar/.rbenv/versions/2.2.3/lib/Ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `require': dlopen(/Users/askar/.rbenv/versions/2.2.3/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/askar/.rbenv/versions/2.2.3/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/askar/.rbenv/versions/2.2.3/lib/Ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle

Gemfile内:gem 'mysql2'

$ ls -al/usr/local/lib/libmysql *

lrwxr-xr-x  1 askar  admin  49 Nov 13 10:48 /usr/local/lib/libmysqlclient.20.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.20.dylib
lrwxr-xr-x  1 askar  admin  42 Nov 13 10:48 /usr/local/lib/libmysqlclient.a -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.a
lrwxr-xr-x  1 askar  admin  46 Nov 13 10:48 /usr/local/lib/libmysqlclient.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.dylib
lrwxr-xr-x  1 askar  admin  37 Nov 13 10:48 /usr/local/lib/libmysqld.a -> ../Cellar/mysql/5.7.9/lib/libmysqld.a
lrwxr-xr-x  1 askar  admin  44 Nov 13 10:48 /usr/local/lib/libmysqlservices.a -> ../Cellar/mysql/5.7.9/lib/libmysqlservices.a

$ ls -al /usr/local/Cellar/mysql/5.7.9/lib/

total 84392
drwxr-xr-x   9 askar  admin       306 Nov 12 22:16 .
drwxr-xr-x  14 askar  admin       476 Nov 13 10:48 ..
-r--r--r--   1 askar  admin   3780168 Nov 13 10:48 libmysqlclient.20.dylib
-r--r--r--   1 askar  admin   4280752 Nov 12 22:16 libmysqlclient.a
lrwxr-xr-x   1 askar  admin        23 Nov 12 22:16 libmysqlclient.dylib -> libmysqlclient.20.dylib
-r--r--r--   1 askar  admin  35126528 Nov 12 22:16 libmysqld.a
-r--r--r--   1 askar  admin      9048 Nov 12 22:16 libmysqlservices.a
drwxr-xr-x   3 askar  admin       102 Nov 13 10:48 pkgconfig
drwxr-xr-x  43 askar  admin      1462 Nov 12 22:17 plugin
drwxr-xr-x  43 askar  admin      1462 Nov 12 22:17 plugin

ご覧の通り、私はlibmysqlclient.20.dylibを持っていますが、20ではなく18です。それ以外の場合は、解決策 here に従います.

私は最近、エルキャピタンにアップグレードしましたが、それが原因だとはわかりません。

UPDATE:

Gemを再インストールするためのヒントをくれた@Rashmirathiに感謝します。

注意したいのは、Gemfileで次のように指定する必要があることです。

gem 'mysql2', '~> 0.3.18'

そうでなければ、エラーが発生しました:

データベースアダプタに「mysql2」を指定しましたが、gemはロードされていません。 gem 'mysql2'をGemfileに追加します(そして、そのバージョンがActiveRecordに最低限必要であることを確認してください)。

しかし、最終的にエラーが発生しました:

Mysql2 :: Error
パスワードの有効期限が切れています。ログインするには、期限切れのパスワードをサポートするクライアントを使用して変更する必要があります。

これは、パスワードを再度設定することで解決されます。

SET PASSWORD=PASSWORD('your_password');
32
Askar

以前同じ問題が発生していましたが、gem mysql2

53
Rashmirathi

これはあなたの問題を解決します:

gem pristine mysql2

CesarSulbarán による解決策

OS X El Capitain以上のユーザーの場合、これで問題が解決します。

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

詳細情報 https://stackoverflow.com/a/32875545/1066915

23
Fabien Sa

私はPythonで同様の問題がありました:libmysqlclient.20.dylib の代わりに 18エルキャピタン。 pip install --upgrade mysqlそれを修正しましたが、python2でのみ動作します。

5
ben.dichter

Homebrewを使用しているため、すべてを段階的にクリアしてこの問題を修正しました。

  1. Rails app Gemfileでmysql2 gemをコメントアウトします

    「#gem 'mysql2'」

  2. バンドルからmysql2 gemを削除します

    バンドルインストール

  3. Mysql2 gemをアンインストールします(すべてのバージョン)

    gemアンインストールmysql2

  4. Homebrewを更新

    醸造アップデート

  5. Mysqlのすべてのバージョンをアンインストールします

    brew uninstall --force mysql

  6. Mysqlを再インストールします

    mysqlをインストールする

  7. Gemfileでmysql2 gemのコメントを解除します

    gem mysql2

  8. Mysql2をバンドルに追加

    バンドルインストール

このアプローチは少しやり過ぎかもしれませんが、私にはきれいに感じます。

4
allesklar

ここでチャイムしたい-私はちょうどlibmysqlclient.18.dylib 18-20の違いで同じ問題を抱えていました。 mysql gem(activerecord-mysql-adapterの依存関係)を再インストールすると違いが生じました。再インストールmysql2は何もしませんでした。

明確にするための編集:私のエラーメッセージはmysql gemにさかのぼりますが、検索によってこのスレッドを見つけたので、ここに含めます。

Please install the mysql adapter: `gem install activerecord-mysql-adapter` (dlopen(/Users/eriks/.rvm/gems/Ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle, 9): 
Library not loaded: /usr/local/lib/libmysqlclient.18.dylib 
Referenced from: /Users/eriks/.rvm/gems/Ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle
Reason: image not found - /Users/eriks/.rvm/gems/Ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle) (LoadError)
1
erikdstock