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');
Ich hatte früher das gleiche Problem, ich habe es behoben, indem ich den Edelstein mysql2
Neu installiert habe.
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
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.
Ich benutze Homebrew, also habe ich dieses Problem behoben, indem ich alles Schritt für Schritt aufgeräumt habe:
Kommentiere das mysql2 Gem in der Rails App Gemfile aus
"# gem 'mysql2'"
Entfernen Sie mysql2 gem aus dem Bundle
bundle installieren
Deinstalliere das mysql2 gem (alle Versionen)
gem deinstalliere mysql2
Aktualisieren Sie Homebrew
brauupdate
Deinstallieren Sie alle Versionen von MySQL
brauen deinstallieren --force mysql
Installieren Sie MySQL neu
brauen installieren MySQL
Entkommentiere mysql2 gem in Gemfile
gem mysql2
Füge mysql2 zum Bundle hinzu
bundle installieren
Dieser Ansatz mag ein bisschen übertrieben sein, fühlt sich für mich aber sauber an.
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)