software rails mac last examples example application mysql ruby-on-rails rubygems webrick

mysql - mac - ruby on rails software



Biblioteca no cargada: error libmysqlclient.16.dylib al intentar ejecutar el ''servidor de rieles'' en OS X 10.6 con la gema mysql2 (24)

¡He resuelto esto, eventualmente!

Reinstalé Ruby y Rails bajo RVM. Estoy usando la versión 1.9.2-p136 de Ruby.

Después de reinstalar bajo rvm, este error todavía estaba presente.

Al final el comando mágico que lo resolvió fue:

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

¡Espero que esto ayude a alguien más!

He estado luchando con esto por algún tiempo.

He instalado Rails 3, gem, mysql en mi máquina Snow Leopard. Todo iba bien hasta que creé mi primer proyecto e intenté ejecutar

rails server

Al ejecutar esto obtengo:

jontybrook$ rails server /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError) Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7 from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'' from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7 from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'' from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28 from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'' from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27 from script/rails:6:in `require'' from script/rails:6 jontybrook$

Por lo que puedo decir, el problema es con la gema mysql2. MySQL parece estar funcionando bien y mi Gemfile hace referencia a mysql2, mi archivo database.yml también parece estar bien.

El error menciona

Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

Y todavía

jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2 jontybrook$ ls client.rb em.rb error.rb mysql2.bundle result.rb

MySQL2.bundle está ahí?

Si uso la vieja gema mysql, WEBrick arranca bien. Pero eso no es lo ideal, ¿verdad?

He intentado todo lo que Google me puede dar! Cualquier ayuda muy apreciada.


Abre una Terminal y ejecuta lo siguiente:

export PATH=$PATH:/usr/local/mysql/bin

Deberia de funcionar.


Agregue lo siguiente a su ~/.bash_profile :

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

Esto funciono para mi


Así es como funcionó para mí:

Corrí el siguiente comando
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 / lib / myqql2 / mysql2.bundle

Mis entornos:
$ rails -v Rails 3.0.6

$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, para osx10.6 (i386) usando readline 5.1

$ ruby ​​-v
ruby 1.9.2p180 (2011-02-18 revisión 30909) [x86_64-darwin10.7.0]

Espero que esto ayude a alguien.


En la actualización de OSX El Capitán cuando haces esto:

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

arroja un error como

ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted

Así que para evitar esto, lo que puede hacer es localizar primero libmysqlclient.18.dylib usando el comando

User$ locate libmysqlclient.18.dylib

En mi caso, devolvió /usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib

Así que en lugar de usr/lib/ crearemos un enlace simbólico a usr/local/lib/ como esto:

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

Más detalles: https://forums.developer.apple.com/thread/7935



Esto suele suceder cuando se actualiza mysql. La gema mysql2 instalada que se construyó en las antiguas librerías de mysql no puede funcionar con las nuevas. Solo necesito reinstalarlo.

Desinstale mysql2 con gem uninstall mysql2 . Entonces instálalo con gem install mysql2


Gracias, Ogapo! Exportando ese alias funcionó para mí, y luego seguí el enlace, y en mi caso el mysql2.bundle estaba en /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle así Ajusté install_name_tool para modificar ese paquete en lugar de uno en ~ / .rvm y lo hice funcionando de la manera correcta.

Y ahora:

$ otool -L /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib (compatibility version 1.8.0, current version 1.8.7) /usr/local/mysql/lib/libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)


He tenido este mismo problema hace unos días. Eventualmente logré resolverlo. No estoy muy seguro de cómo, pero te diré lo que hice de todos modos. Tal vez te ayude.

Comencé por descargar RVM. Si no lo estás usando todavía, te recomiendo hacerlo. Básicamente crea una caja de arena para una nueva instalación separada de Ruby, RoR y RubyGems. De hecho, puede tener varias instalaciones de forma simultánea y cambiar instantáneamente a otra. Funciona a las mil maravillas.

¿Por qué es esto útil? Porque no debes meterte con la instalación predeterminada de Ruby en OS X. El sistema depende de ello. Es mejor dejar solo la instalación predeterminada de Ruby y RoR y crear una nueva utilizando RVM que pueda usar para su propio desarrollo.

Una vez que creé mi instalación de Ruby por separado, acabo de instalar RoR, RubyGems y mysql, y funcionó. Para los pasos exactos que tomé, vea mi pregunta: Instalar Rails, MySQL, etc. todo sale mal

Una vez más: no sé con certeza que esto resolverá su problema. Pero ciertamente me sirvió, y en cualquier caso, usar RVM es altamente recomendable.


Hola, me funcionó desde el enlace recomendado de Fredy Andersen.

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql /lib/libmysqlclient.16.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

Solo tuve que cambiar a mi versión de mysql, en el comando, gracias


Jonty, estoy luchando con esto también.

Creo que hay una pista aquí:

otool -L /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib (compatibility version 1.8.0, current version 1.8.7) libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

Note que el camino hacia el dylib es, uh, bastante corto?

Estoy tratando de averiguar dónde las instrucciones de instalación de gemas están dejando de lado el camino de dylib, pero es lento ya que nunca he construido una gema yo mismo.

Voy a publicar más si encuentro más!


Las siguientes líneas funcionan para mí. Estoy usando mac 10.7.2.

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


Lo resolví creando el archivo .rvmrc en mi carpeta de proyectos que contiene:

rvm use <yourrubie>

luego entrando en mi proyecto

cd ~/myprojectpath

entonces corro

bundle install


Mi versión del comando de luvlss:

Mac OSX 10.10.5

MySQL 5.6.27

Pasajero 5.0.21

sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Si estás probando muchos enlaces diferentes, como lo hice yo, haz un poco de limpieza con:

sudo unlink /usr/lib/libmysqlclient.18.dylib


Nunca logré que ninguna de estas respuestas funcionara para mí, pero este es el comando que usé para que funcionara. De esta manera, no necesita usar install_name_tool cada vez que actualice su mysql

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


Para mí esto fue solo porque había actualizado mysql pero no había actualizado la gema mysql2: una reinstalación de la gema lo solucionará ...

gem pristine mysql2


Para mi tuve que desinstalar manualmente mysql

brew uninstall mysql rm -rf /usr/local/var/mysql brew install mysql


Resolví este problema al eliminar mi conjunto de gemas para mi proyecto actual y volver a crearlo y volver a ejecutar la instalación del paquete. Creo que lo causé instalando una versión más nueva de mysql.


Sólo se encontró con este problema. Todo lo que tuve que hacer es desinstalar mysql2 gem y reinstalarlo. Espero que esto funcione para otras personas.


Si estás usando OSX y has instalado mysql usando brew, puedes:

brew link mysql

Si tiene problemas con la versión (tenía mysql 5.7 en ejecución mientras que mi gema requería 5.6.25), puede

brew unlink mysql brew switch mysql 5.6.25


Tengo el mismo problema. Parece que no puede encontrar la biblioteca libmysqlclient. Una solución temporal que me ha funcionado es la siguiente:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

No estoy seguro de dónde está la configuración especificando la ruta de carga o qué está configurado, pero mi instalación de mysql no parecía estar en ella. Voy a publicar de nuevo si encuentro una solución más permanente.

Edición: En realidad, this solución aparece para abordar con mayor precisión el problema.


Todavía encontré que con las soluciones anteriores, no funcionó (por ejemplo) con el complemento Rails para TextMate. Recibí un error similar (al recuperar el esquema de la base de datos).

Entonces, ¿qué hizo es, terminal abierta:

cd /usr/local/lib sudo ln -s ../mysql-5.5.8-osx10.6-x86_64/lib/libmysqlclient.16.dylib .

Reemplace mysql-5.5.8-osx10.6-x86_64 con su propia ruta (o mysql).

Esto hace que un enlace de símbolo a lib, ahora rails se ejecute desde la línea de comandos, así como complementos TextMate como ruby-on-rails-tmbundle .

Para que quede claro: esto también corrige el error que se produce al iniciar el servidor de rieles.


Tuve este problema al trabajar con Django, uso brew para instalar muchos de mis programas de código abierto y tuve que hacer lo siguiente ya que usé brew para instalar mysql :

sudo ln -s /usr/local/Cellar/mysql/5.5.20/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

¡Asegúrese de reemplazar con su versión de las bibliotecas!


bundle install mysql --force me ayudó. Se reinstalaron las dependencias que se han ido como resultado de brew uninstall mysql .