2015-10-08 21 views
11

da quando ho aggiornato a OSX 10.11, non posso usare MySQL con la mia applicazione Rails più:Rails su OSX 10.11 El Capitan: Libreria non caricati: libmysqlclient.18.dylib

$ rails s 
/Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require': dlopen(/Users/josh/.rvm/gems/[email protected]/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError) 
    Referenced from: /Users/josh/.rvm/gems/[email protected]/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle 
    Reason: image not found - /Users/josh/.rvm/gems/[email protected]/gems/mysql2-0.3.20/lib/mysql2/mysql2.bundle 
    from /Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require' 
    from /Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency' 
    from /Users/josh/.rvm/gems/[email protected]/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require' 

ho trovato altri post su problemi simili, ma io sono troppo di un principiante in questo senso, e le versioni cambiate da risolvere, ecc

risposta

50

La risposta precedente (pre El Capitan), è stato quello di creare un collegamento simbolico dalla directory lib di MySQL per il file di libreria in/usr/lib, in questo modo:

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

Tuttavia questo ora produce 'operazione non permesso 'a causa dei controlli di integrità di OS X. Questo può essere aggirato disabilitando questo. Tuttavia una soluzione molto più semplice (e uno posso verificare ha lavorato) è quello di un link simbolico solo in// local/lib usr invece:

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

Il buon vecchio' Apple.

+0

Lavoro. Perfezionare! Grazie. –

+0

Funziona perfettamente grazie –

+0

Una cosa da notare è che se stai usando Python in un ambiente virtuale potresti aver bisogno di ricrearlo o cambiare i percorsi perché potrebbe essere ancora riferito alla versione/usr/lib che non fa Esistono –

0

ho avuto lo stesso problema basta aprire colpo terminale:

sudo nano ~/.bash_profile 

incollare le seguenti righe:

MYSQL=/usr/local/mysql/bin 
export PATH=$PATH:$MYSQL 
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH 

e questo è tutto.

+2

Questo non ha cambiato nulla per me. Ho anche chiuso e riaperto il terminale per assicurarmi che sia caricato correttamente. –

+0

Oggi sto riscontrando un problema simile: sei arrivato fino in fondo. –

Problemi correlati