mysql ruby macos osx-elcapitan ruby-on-rails-4.2

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'');


Esto resolverá su problema:

gem pristine mysql2

solución de Cesar Sulbarán


Estoy usando Homebrew así que solucioné este problema aclarando todo paso a paso:

  1. Comenta la gema mysql2 en la aplicación Rails Gemfile

    "# gem ''mysql2''"

  2. Retire la gema mysql2 del paquete

    paquete de instalación

  3. Desinstalar la gema mysql2 (todas las versiones)

    joya desinstalar mysql2

  4. Actualizar Homebrew

    actualización de cerveza

  5. Desinstalar todas las versiones de mysql

    brew uninstall --force mysql

  6. Reinstalar mysql

    brew install mysql

  7. Descomenta la gema mysql2 en Gemfile

    gema mysql2

  8. 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.