2011-02-01 12 views
5

He instalado rails y mysql. También he instalado la gema mysql2. Creé una aplicación de rieles con el comando rails new try_cms -d mysql Se creó con éxito. Pero cuando intento ejecutar el servidor WEBrick utilizando el comando del servidor rails, obtengo los siguientes errores.No se puede iniciar el servidor de rails

/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.9/lib/bundler/runtime.rb:68:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/runtime.rb:68:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/runtime.rb:66:in `each' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/runtime.rb:66:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/runtime.rb:55:in `each' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/runtime.rb:55:in `require' 
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler.rb:114:in `require' 
    from /Users/dilippednekar/Sites/try_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 

Gracias de antemano.

+0

versión 3.0.3 rubí – rdp

+0

quiere decir carriles versión 3.0.3 :) Gracias –

Respuesta

6

vuelva a emitir este (ver pregunta similar here)

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 
+1

. Eso funciona. Agradecería que me explicaras qué hará exactamente ese comando. – rdp

+3

Ese comando le dice al paquete mysql2 que indique la ruta completa de '/ usr/local/mysql/lib/libmysqlclient.16.dylib' en lugar de solo un nombre de archivo de' libmysqlclient.16.dylib'. –

+0

Intenté hacer esto para solucionar el problema por mí mismo, pero olvidé actualizar las versiones. Es decir. en mi sistema, debería haber puesto mysql2-0.3.6 .. Ahora, cuando intento iniciar el servidor de rieles, está buscando 0.2.6. ¿Sabes cómo puedo revertir este problema? Traté de volver a ingresar tu respuesta con las versiones actualizadas, pero no hizo nada. De hecho, ni siquiera me pidió mi contraseña de root nuevamente – Leahcim

0
sudo apt-get install libmysqlclient15-dev libmysqlclient15off libmysql-ruby 
2

Por alguna razón el archivo mysql2.bundle no estaba en mi joya mysql2. Ejecuté

gem uninstall mysql2 

y la gema se ha desinstalado. Inmediatamente después, me encontré

sudo gem install mysql2 

continuación

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 

Finalmente rails s puso en marcha el servidor!

2

Tuve problemas similares. La solución que funcionó para mí se encontró here.

4

Acabo de toparme con este problema yo mismo. Asegúrese de actualizar los números de versión.

sudo install_name_tool -cambio libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2. paquete

0

Me acaban de pegar con esto usando Rails 3.1.0, ruby-1.9.2-p290 y mysql2 0.3.7. Mi solución fue degradar a mysql 2.8.1. Todo se ve bien hasta ahora (ni siquiera fui capaz de comenzar el ambiente).

1

Si quiere algo un poco menos intrusivo, simplemente configure la variable de entorno DYLD_LIBRARY_PATH en la dirección de lib de MySQL.

export DYLD_LIBRARY_PATH=$MYSQL_HOME/lib 
Cuestiones relacionadas