2011-02-01 16 views
5

Ho installato rails e mysql. Ho anche installato mysql2 gem. Ho creato un'applicazione per rotaie dal comando rails new try_cms -d mysql E 'stata creata con successo. Ma quando provo a eseguire il server WEBrick utilizzando il comando rails server ottengo i seguenti errori.Impossibile avviare il server di 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 

Grazie in anticipo.

+0

versione ruby ​​3.0.3 – rdp

+0

intendi rotaie versione 3.0.3 :) –

risposta

6

Provare a eseguire questo (vedi domanda simile 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

Grazie. Che funzioni. Sarei grato se mi spiegassi che cosa farà esattamente quel comando. – rdp

+3

Questo comando dice al pacchetto mysql2 di utilizzare l'intero percorso di/usr/local/mysql/lib/libmysqlclient.16.dylib' invece di un solo nome di 'libmysqlclient.16.dylib'. –

+0

Ho provato a farlo per risolvere il problema da solo, ma ho dimenticato di aggiornare le versioni. Cioè sul mio sistema, avrei dovuto mettere mysql2-0.3.6 .. Ora quando provo ad avviare il server di rails, è in cerca di 0.2.6. Sai come posso invertire questo problema? Ho provato a reinserire la tua risposta con le versioni aggiornate ma non ha fatto nulla. In effetti, non mi ha nemmeno chiesto la mia password di root di nuovo – Leahcim

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

Per qualche ragione il file mysql2.bundle non era nel mio mysql2 gemma. Ho eseguito

gem uninstall mysql2 

e la gemma è stata disinstallata. Poi ho subito incontrato

sudo gem install mysql2 

Poi

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 

Infine rails s lanciato il server!

2

Ho avuto problemi simili. La soluzione che ha funzionato per me è stata trovata here.

4

Mi sono imbattuto in questo problema. Assicurati di aggiornare i numeri di versione.

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

0

Sono stato colpito da questo utilizzando Rails 3.1.0, ruby-1.9.2-p290 e mysql2 0.3.7. La mia soluzione era il downgrade a mysql 2.8.1. Tutto sembra buono finora (non ero nemmeno in grado di avviare l'ambiente).

1

Se desideri qualcosa di un po 'meno invadente, imposta la variabile di ambiente DYLD_LIBRARY_PATH nella direzione della lib di MySQL.

export DYLD_LIBRARY_PATH=$MYSQL_HOME/lib 
Problemi correlati