Erreur:
/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
Dans 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
Comme vous le voyez, je vais libmysqlclient.20.dylib
, c'est 20
ne pas 18
, sinon je suivrais la solution ici .
J'ai récemment mis à niveau vers El Capitan, mais je ne suis pas sûr que ce soit la cause.
MISE À JOUR:
Merci à @Rashmirathi pour l'astuce pour réinstaller la gemme.
Je voulais juste noter que je devais également spécifier dans Gemfile:
gem 'mysql2', '~> 0.3.18'
Sinon, j'ai eu une erreur:
"Mysql2" spécifié pour l'adaptateur de base de données, mais la gemme n'est pas chargée. Ajouter
gem 'mysql2'
à votre Gemfile (et assurez-vous que sa version est au minimum requise par ActiveRecord).
Mais finalement j'ai eu une erreur:
Mysql2 :: Erreur
Votre mot de passe a expiré. Pour vous connecter, vous devez le modifier à l'aide d'un client qui prend en charge les mots de passe expirés.
Ce qui est résolu en définissant à nouveau un mot de passe:
SET PASSWORD=PASSWORD('your_password');
J'obtenais le même problème plus tôt, je l'ai résolu en réinstallant la gemme mysql2
.
Pour ceux sur OS X El Capitain ou plus, cela résout mon problème:
Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Pour plus d'informations https://stackoverflow.com/a/32875545/1066915
J'ai eu un problème analogue en python: libmysqlclient.20.dylib
au lieu de 18
sur El Capitan. pip install --upgrade mysql
l'a corrigé, mais ne fonctionne qu'en python2.
J'utilise Homebrew, j'ai donc résolu ce problème en clarifiant tout étape par étape:
Commentez la gemme mysql2 dans le Rails app Gemfile
"# gem 'mysql2'"
Supprimer mysql2 gem du bundle
installation du bundle
Désinstallez la gemme mysql2 (toutes les versions)
gem désinstaller mysql2
Mettre à jour Homebrew
mise à jour de brassage
Désinstaller toutes les versions de mysql
désinstallation de brew --force mysql
Réinstaller mysql
installer brew mysql
Décommenter la gemme mysql2 dans Gemfile
gem mysql2
Ajouter mysql2 au bundle
installation du bundle
Cette approche peut être un peu exagérée mais me semble propre.
Je veux juste sonner ici - j'ai juste eu le même problème avec la différence libmysqlclient.18.dylib 18-20. réinstallation de la gemme mysql
(une dépendance de la activerecord-mysql-adapter
) a fait la différence. réinstaller mysql2
n'a rien fait.
édition pour clarifier: mon message d'erreur remonte à mon joyau mysql, mais j'ai trouvé ce fil via la recherche, donc je l'inclus ici:
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)