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 antigua joya mysql, WEBrick arranca bien. Pero eso no es ideal, ¿verdad?
¡He intentado todo lo que Google me puede dar! Cualquier ayuda muy apreciada.
fuente
/usr/lib
, ese enlace se resolverá en la ubicación donde está realmente instalado. En OS X, generalmente está debajo/usr/local/mysql/lib
, que es donde se vincula este comando. Si su lib está instalada en una ubicación diferente, deberá ajustar este comando. Escribalocate libmysqlclient.18.dylib
y sustituya el resultado por el primer argumento posterior-s
.WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.
¿qué está mal?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Eso iniciará el proceso de indexar su disco duro, lo que hará que ellocate
comando funcione en el futuro. Sin embargo, en la mayoría de los casos, creo que no necesitará hacer eso, y solo puede usar el comando que luvlss proporcionó tal cual.¡He resuelto esto, eventualmente!
Reinstalé Ruby and Rails en RVM. Estoy usando Ruby versión 1.9.2-p136.
Después de reinstalar bajo rvm, este error aún estaba presente.
Al final, el comando mágico que lo resolvió fue:
¡Espero que esto ayude a alguien más!
fuente
mysql2-0.2.6/lib/mysql2/mysql2.bundle
dónde estén instaladas sus gemas.sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.10/lib/mysql2/mysql2.bundle
Esta solución funcionó muy bien para mí:
Agregue lo siguiente a su ~ / .profile
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
fuente
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
fuente
Tengo el mismo problema. Parece que no puede encontrar la biblioteca libmysqlclient. Una solución temporal que me ha funcionado es la siguiente:
No estoy seguro de dónde está especificando la configuración la ruta de carga o lo que está configurado, pero mi instalación de mysql no parecía estar en ella. Publicaré nuevamente si encuentro una solución más permanente.
Editar: en realidad, esta solución parece abordar el problema con mayor precisión.
fuente
Agregue lo siguiente a su
~/.bash_profile
:Esto funciono para mi
fuente
En la actualización de OSX El Capitan cuando haces esto:
arroja un error como
Entonces, para evitar esto, lo que puede hacer es localizar primero
libmysqlclient.18.dylib
usando el comandoEn mi caso regresó
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Entonces, en lugar de
usr/lib/
crear un enlace simbólico para que leusr/local/lib/
guste esto:Más detalles: https://forums.developer.apple.com/thread/7935
fuente
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
carpetaLas siguientes líneas me funcionan. Estoy usando mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
fuente
Acabo de encontrarme con este problema. Todo lo que tuve que hacer es desinstalar mysql2 gem y reinstalarlo. Espero que esto funcione para otras personas
fuente
All versions
en el indicador. Luego ejecuté brew upgrade mysql y luego gem install mysql2.Así es como funcionó para mí:
Ejecuté el siguiente comando
Ejecuté 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/mysql2/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 (revisión 2011-02-18 30909) [x86_64-darwin10.7.0]
Espero que esto ayude a alguien.
fuente
Gracias Ogapo! Exportar 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 so Ajusté install_name_tool para modificar ese paquete en lugar de uno en ~ / .rvm y conseguí que funcionara como debería hacerse.
Y ahora:
fuente
hola me funcionó desde el enlace recomendado de Fredy Andersen
solo tuve que cambiar a mi versión de mysql, en el comando, gracias
fuente
Resolví este problema eliminando mi conjunto de gemas para mi proyecto actual y recreándolo y volviendo a ejecutar la instalación del paquete. Creo que lo causé al instalar una versión más nueva de mysql.
fuente
Tuve este problema cuando trabajaba con Django,
brew
solíabrew
instalar muchos de mis programas de código abierto y tenía que hacer lo siguiente desde la instalaciónmysql
:¡Asegúrese de reemplazar con su versión de las bibliotecas!
fuente
bundle install mysql --force
me ayudó. Reinstaló las dependencias de las que desapareció como resultadobrew uninstall mysql
.fuente
Unknown switches '--force'
Jonty, yo también estoy luchando con esto.
Creo que hay una pista aquí:
Observe que la ruta al dylib es, ¿eh, bastante corta?
Estoy tratando de averiguar dónde están las instrucciones de instalación de la gema fuera del camino dylib, pero es lento ya que nunca he construido una gema.
¡Publicaré más si encuentro más!
fuente
He tenido este mismo problema hace unos días. Finalmente logré resolverlo. No estoy muy seguro de cómo, pero te diré lo que hice de todos modos. Quizás te ayude.
Comencé descargando RVM. Si aún no lo está utilizando, le recomiendo que lo haga. Básicamente crea un sandbox para una nueva instalación separada de Ruby, RoR y RubyGems. De hecho, puede tener varias instalaciones simultáneamente y cambiar instantáneamente entre sí. Funciona a las mil maravillas.
¿Por qué es útil esto? Porque no deberías meterte con la instalación predeterminada de Ruby en OS X. El sistema depende de ello. Es mejor dejar sola la instalación predeterminada de Ruby y RoR y crear una nueva usando RVM que pueda usar para su propio desarrollo.
Una vez que creé mi instalación separada de Ruby, acabo de instalar RoR, RubyGems y mysql, y funcionó. Para conocer los pasos exactos que tomé, vea mi pregunta: Instalar Rails, MySQL, etc. todo sale mal
De nuevo: no sé con certeza que esto resolverá su problema. Pero ciertamente me sirvió, y en cualquier caso usar RVM es muy recomendable.
fuente
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, lo que hizo es abrir la terminal:
Reemplazar mysql-5.5.8-osx10.6-x86_64 con su propia ruta (o mysql).
Esto hace un enlace de símbolo a la biblioteca, ahora rails se ejecuta desde la línea de comandos, así como los complementos de TextMate como ruby-on-rails-tmbundle .
Para ser claros: esto también corrige el error que obtienes al iniciar el servidor de rails.
fuente
Esto suele suceder cuando actualiza mysql. La gema mysql2 instalada que se creó en las antiguas bibliotecas mysql no puede funcionar con las nuevas bibliotecas. Solo necesito reinstalarlo.
Desinstalar mysql2 con
gem uninstall mysql2
. Luego instálalo congem install mysql2
fuente
Lo resolví creando un archivo .rvmrc en mi carpeta de proyecto que contiene:
luego ingresando la ruta de mi proyecto
entonces corro
fuente
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á probando muchos enlaces diferentes, como lo hice, haga una limpieza con:
sudo unlink /usr/lib/libmysqlclient.18.dylib
fuente
Abra una Terminal y ejecute lo siguiente:
Deberia de funcionar.
fuente
Si está utilizando OSX y ha instalado mysql utilizando brew, puede:
Si tiene problemas con la versión (tenía mysql 5.7 ejecutándose mientras mi gema requería 5.6.25), puede
fuente
Para mí tuve que desinstalar manualmente mysql
fuente