Actualización de El Capitan: Biblioteca no cargada:/usr/local/lib/libmysqlclient.18.dylib
ruby macos (6)
Estaba obteniendo el mismo problema anteriormente, lo arreglé reinstalando la gema mysql2
.
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
En 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
Como ves estoy teniendo libmysqlclient.20.dylib
, son 20
no 18
, de lo contrario seguiría la solución here .
Recientemente me actualicé a El Capitán, pero no estoy seguro de que esa sea la causa.
ACTUALIZAR:
Gracias a @Rashmirathi por la pista para volver a instalar la gema.
Solo quería señalar, también necesitaba especificar en Gemfile como:
gem ''mysql2'', ''~> 0.3.18''
De lo contrario, tuve un error:
Especificó ''mysql2'' para el adaptador de base de datos, pero la gema no está cargada. Agregue
gem ''mysql2''
a su Gemfile (y asegúrese de que su versión sea la mínima requerida por ActiveRecord).
Pero finalmente obtuve el error:
Mysql2 :: Error
Tu contraseña ha expirado. Para iniciar sesión debe cambiarlo utilizando un cliente que admita contraseñas caducadas.
Que se resuelve al configurar una contraseña de nuevo:
SET PASSWORD=PASSWORD(''your_password'');
Estoy usando Homebrew así que solucioné este problema aclarando todo paso a paso:
Comenta la gema mysql2 en la aplicación Rails Gemfile
"# gem ''mysql2''"
Retire la gema mysql2 del paquete
paquete de instalación
Desinstalar la gema mysql2 (todas las versiones)
joya desinstalar mysql2
Actualizar Homebrew
actualización de cerveza
Desinstalar todas las versiones de mysql
brew uninstall --force mysql
Reinstalar mysql
brew install mysql
Descomenta la gema mysql2 en Gemfile
gema mysql2
Añadir mysql2 a paquete
paquete de instalación
Este enfoque puede ser un poco exagerado, pero se siente limpio para mí.
Para aquellos en OS X El Capitain o más, esto soluciona mi problema:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Para más información https://.com/a/32875545/1066915
Solo quiero entrar aquí, solo tuve el mismo problema con la diferencia libmysqlclient.18.dylib 18-20. la reinstalación de la gema mysql
(una dependencia del activerecord-mysql-adapter
) marcó la diferencia. la reinstalación de mysql2
no hizo nada.
Edición para aclarar: mi mensaje de error se remonta a mi gema mysql, pero encontré este hilo a través de la búsqueda, así que lo estoy incluyendo aquí:
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)
Tuve un problema análogo en python: libmysqlclient.20.dylib
lugar de 18
en El Capitan. pip install --upgrade mysql
arregló, pero solo funciona en python2.