2015-12-30 9 views
20

Sto usando ruby ​​2.3, e nel file gemma, ho elencato la gemma mysql2. Ma quando provo a fare funzionare rake db:migrate, ottengo il seguente:Come posso risolvere "versione di libreria incompatibile" per mysql2 gem con ruby ​​2.3 su OS X?

/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in `require': incompatible library version - /Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle (fatal) 

io non riesco a ottenere intorno a questo. Ho installato Mysql 5.7 con Homebrew, ho provato ad aggiornare il bundle, disinstallare e reinstallare mysql2 gem, tutto inutilmente.

Come posso risolvere questo problema?

+0

ho lo stesso problema con la stessa versione gemma - sto usando sequel, non sono sicuro se lo sei o se fa la differenza. hai risolto questo problema? – dax

+0

anche, usando mariadbclient su arch linux – dax

+0

No, non ancora. Sto usando OS X. – croceldon

risposta

32

ho finito per risolvere questo con gem pristine --all

+0

fantastico lavoro, grazie –

+0

grandi opere. Per favore, spiegate perché non funzionava e come si risolve? – Batbayar

+0

Per capire come appare https://www.justinweiss.com/articles/3-quick-gem-tricks/ –

5

ho risolto questo con gem pristine mysql2 seguito da spring stop.

0

Ho riscontrato lo stesso problema. Ho avuto ruby ​​2.3.4 installato e utilizzo di rail 4.6.2.

Esistono due cause e il team di supporto della società di hosting che stavo utilizzando mi ha aiutato a risolvere il problema.

La prima è che la lib mysql2 che è stato installato era, per impostazione predefinita, legato a Ruby 1.8 invece di rubino 2

# lld ../2.2.0/mysql2-0.4.4/mysql2/mysql2.so 
... 
... 
libruby.so.1.8 => /usr/lib64/libruby.so.1.8 (0x00007f2af1f8a000) 
... 

secondo problema è stato quello di compilare il lib con il server di configurazione di MySQL installato

Quindi mysql2 gem ha dovuto essere disinstallato e reinstallato con la giusta ruby ​​lib e compilato con la giusta configurazione di mysql.

Di seguito sono riportati i comandi.

gem uninstall mysql2 
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config --with-opt-lib=/where/my/ruby22/lib_was_located/ 
0

ho sperimentato questo problema trasferirsi a Ubuntu 16.04

Di seguito ha fatto il trucco

sudo apt-get install g++ 
sudo apt-get install build-essential 
0

eseguendo sudo gioiello mysql2 incontaminata non ha funzionato per me.

Ho dovuto disinstallare e reinstallare mysql2 gem.