web-dev-qa-db-de.com

El Capitan-Upgrade: Bibliothek nicht geladen: /usr/local/lib/libmysqlclient.18.dylib

Error:

/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

In 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

Wie Sie sehen, habe ich libmysqlclient.20.dylib, es ist 20 nicht 18, sonst würde ich der Lösung folgen hier .

Ich habe kürzlich ein Upgrade auf El Capitan durchgeführt, bin mir aber nicht sicher, ob das der Grund ist.

UPDATE:

Vielen Dank an @Rashmirathi für den Hinweis, das Juwel neu zu installieren.

Ich wollte nur erwähnen, dass ich in Gemfile auch Folgendes angeben musste:

gem 'mysql2', '~> 0.3.18'

Ansonsten hatte ich Fehler:

'Mysql2' für den Datenbankadapter angegeben, aber der Edelstein wird nicht geladen. Hinzufügen gem 'mysql2' zu Ihrer Gemdatei (und stellen Sie sicher, dass die Version mindestens von ActiveRecord benötigt wird).

Aber endlich habe ich Fehler bekommen:

Mysql2 :: Fehler
Dein Passwort ist abgelaufen. Um sich anzumelden, müssen Sie es mit einem Client ändern, der abgelaufene Kennwörter unterstützt.

Was durch erneutes Einrichten eines Passwortes behoben wird:

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

Ich hatte früher das gleiche Problem, ich habe es behoben, indem ich den Edelstein mysql2 Neu installiert habe.

53
Rashmirathi

dies wird Ihr Problem lösen:

gem pristine mysql2

lösung von Cesar Sulbarán

Für diejenigen unter OS X El Capitain oder höher ist dieses Problem behoben:

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

Für weitere Informationen https://stackoverflow.com/a/32875545/1066915

23
Fabien Sa

Ich hatte ein analoges Problem in Python: libmysqlclient.20.dylib Anstatt von 18 auf El Capitan. pip install --upgrade mysql behoben, funktioniert aber nur in python2.

5
ben.dichter

Ich benutze Homebrew, also habe ich dieses Problem behoben, indem ich alles Schritt für Schritt aufgeräumt habe:

  1. Kommentiere das mysql2 Gem in der Rails App Gemfile aus

    "# gem 'mysql2'"

  2. Entfernen Sie mysql2 gem aus dem Bundle

    bundle installieren

  3. Deinstalliere das mysql2 gem (alle Versionen)

    gem deinstalliere mysql2

  4. Aktualisieren Sie Homebrew

    brauupdate

  5. Deinstallieren Sie alle Versionen von MySQL

    brauen deinstallieren --force mysql

  6. Installieren Sie MySQL neu

    brauen installieren MySQL

  7. Entkommentiere mysql2 gem in Gemfile

    gem mysql2

  8. Füge mysql2 zum Bundle hinzu

    bundle installieren

Dieser Ansatz mag ein bisschen übertrieben sein, fühlt sich für mich aber sauber an.

4
allesklar

Ich möchte mich nur einschalten - ich hatte gerade das gleiche Problem mit dem Unterschied zwischen libmysqlclient.18.dylib 18-20. Neuinstallation des Gems mysql (eine Abhängigkeit des Gems activerecord-mysql-adapter) hat den Unterschied gemacht. Neuinstallation von mysql2 habe nichts getan.

bearbeitung zur Verdeutlichung: Meine Fehlermeldung geht auf mein MySQL-Juwel zurück, aber ich habe diesen Thread über die Suche gefunden. Deshalb füge ich ihn hier ein:

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