2015-11-18 15 views
28

Errore:El Capitan aggiornamento: Biblioteca non caricato: /usr/local/lib/libmysqlclient.18.dylib

/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `require': dlopen(/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib (LoadError) 
    Referenced from: /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle 
    Reason: image not found - /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle 

In Gemfile: gem 'mysql2'

$ ls -al/usr/local/lib/libmysql *

lrwxr-xr-x 1 askar admin 49 Nov 13 10:48 /usr/local/lib/libmysqlclient.20.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.20.dylib 
lrwxr-xr-x 1 askar admin 42 Nov 13 10:48 /usr/local/lib/libmysqlclient.a -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.a 
lrwxr-xr-x 1 askar admin 46 Nov 13 10:48 /usr/local/lib/libmysqlclient.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.dylib 
lrwxr-xr-x 1 askar admin 37 Nov 13 10:48 /usr/local/lib/libmysqld.a -> ../Cellar/mysql/5.7.9/lib/libmysqld.a 
lrwxr-xr-x 1 askar admin 44 Nov 13 10:48 /usr/local/lib/libmysqlservices.a -> ../Cellar/mysql/5.7.9/lib/libmysqlservices.a 

$ ls -al /usr/local/Cellar/mysql/5.7.9/lib/

0.123.
total 84392 
drwxr-xr-x 9 askar admin  306 Nov 12 22:16 . 
drwxr-xr-x 14 askar admin  476 Nov 13 10:48 .. 
-r--r--r-- 1 askar admin 3780168 Nov 13 10:48 libmysqlclient.20.dylib 
-r--r--r-- 1 askar admin 4280752 Nov 12 22:16 libmysqlclient.a 
lrwxr-xr-x 1 askar admin  23 Nov 12 22:16 libmysqlclient.dylib -> libmysqlclient.20.dylib 
-r--r--r-- 1 askar admin 35126528 Nov 12 22:16 libmysqld.a 
-r--r--r-- 1 askar admin  9048 Nov 12 22:16 libmysqlservices.a 
drwxr-xr-x 3 askar admin  102 Nov 13 10:48 pkgconfig 
drwxr-xr-x 43 askar admin  1462 Nov 12 22:17 plugin 
drwxr-xr-x 43 askar admin  1462 Nov 12 22:17 plugin 

Come vedi sto avendo libmysqlclient.20.dylib, è 20 non 18, altrimenti sarei seguo la soluzione here.

Ho recentemente effettuato l'aggiornamento a El Capitan ma non sono sicuro che sia la causa.

UPDATE:

Grazie alla @Rashmirathi per il suggerimento di re-installare la gemma.

Volevo solo notare, avevo bisogno anche di specificare in Gemfile come:

gem 'mysql2', '~> 0.3.18' 

Altrimenti ho avuto errore:

Specified 'mysql2' for database adapter, but the gem is not loaded. Add gem 'mysql2' to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

Ma errore finalmente ho ottenuto:

Mysql2::Error
Your password has expired. To log in you must change it using a client that supports expired passwords.

Che viene risolto impostando nuovamente una password:

SET PASSWORD=PASSWORD('your_password'); 
+0

Sto affrontando lo stesso problema subito dopo l'aggiornamento a El Captain. Non sono sicuro del motivo per cui Apple non ha ancora risolto il problema. Anche dopo aver aggiornato mysql e MySQL-python tramite pip, il problema persiste. – iankit

risposta

46

Avevo lo stesso problema in precedenza, l'ho risolto reinstallando la gemma mysql2.

+0

Grazie, proverò domani come quel computer al lavoro. – Askar

+0

Ho fatto qualche aggiornamento sul mio post che potrebbe essere interessato a ...;) – Askar

+2

Mi piacerebbe davvero sapere perché ha funzionato. –

31

questo risolverà il problema:

gem pristine mysql2 

solution by Cesar Sulbarán

+3

Questo non ha risolto per me, solo reinstallare ha funzionato. – caesarsol

+0

Funziona per me. Grazie! –

+0

Ha funzionato per me !! Grazie! –

1

fare, a carillon in qui- Ho appena avuto lo stesso problema con il libmysqlclient.18.dylib 18-20 differenza. la reinstallazione della gemma mysql (una dipendenza da activerecord-mysql-adapter) ha fatto la differenza. reinstallare mysql2 non ha fatto nulla.

editing per chiarire: il mio messaggio di errore riconducibile al mio mysql gemma, ma ho trovato questa discussione tramite la ricerca in modo che io sto tra cui qui:

Please install the mysql adapter: `gem install activerecord-mysql-adapter` (dlopen(/Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle, 9): 
Library not loaded: /usr/local/lib/libmysqlclient.18.dylib 
Referenced from: /Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle 
Reason: image not found - /Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle) (LoadError) 
5

ho avuto un problema analogo in python: libmysqlclient.20.dylib invece di 18 su El Capitan. pip install --upgrade mysql risolto, ma funziona solo in python2.

+4

La lib di pertinenza è installata come 'pip installa MySQL-python'. Comunque '--upgrade' non ha funzionato per me dato che avevo l'ultima versione della lib che è stata rotta per qualche motivo. La combinazione di disinstallazione + installazione ha funzionato per me. – arsenyinfo

+1

@arsenyinfo ha funzionato per me. Ho ricevuto gli errori dall'aggiornamento/aggiornamento del brew. – Esteban

20

Per coloro che su OS X El Capitain o più, questo risolvere il mio problema:

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

Per maggiori informazioni https://stackoverflow.com/a/32875545/1066915

+0

per me questa è una soluzione più generica: ln -nfs /usr/local/lib/libmysqlclient.dylib /usr/local/lib/libmysqlclient.18.dylib – Arkhitech

2

sto usando Homebrew così ho risolto questo problema da chiarire tutto passo dopo passo:

  1. Commento fuori la gemma mysql2 in nei applicazione Rails Gemfile

    "# gioiello 'mysql2'"

  2. Rimuovere mysql2 gemma dal fascio

    bundle install

  3. Disinstalla la gemma mysql2 (tutte le versioni)

    gemma di disinstallazione mysql2

  4. Aggiornamento Homebrew

    aggiornamento di birra

  5. Disinstallare tutte le versioni di MySQL

    birra disinstallazione --force mysql

  6. Reinstallare mysql

    birra installare mysql

  7. Decommentare gioiello mysql2 in Gemfile

    gemma mysql2

  8. Add mysql2 al fascio

    bundle install

Questo approccio potrebbe essere un po 'eccessivo, ma si sente pulito per me.

Problemi correlati