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
Esta solución funcionó muy bien para mí:
Agregue lo siguiente a su perfil ~ /.
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
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
.