2012-05-21 15 views
14

Ho clonato il repository github https://github.com/8bitpal/hackful, eseguito "bundle install" e ora "rake db: create". Ma ottengo un messaggio di errore:Rails 3 - Versione errata della libreria client MySQL! Gemma compilata per la versione errata della libreria client

Incorrect MySQL client library version! This gem was compiled for 5.0.45 but the client library is 5.5.15. 

cercato di scoprire maggiori dettagli sulla mia configurazione di MySQL:

$ mysql_config --version 
$ 5.0.45 

$ mysql 
$ mysql> SELECT version(); 
+-----------+ 
| version() | 
+-----------+ 
| 5.1.57 | 
+-----------+ 

Dal momento che raramente roba sysadmin mi sento un po 'perso come interpretare queste informazioni, vale a dire perché la "libreria del client 5.5.15" menzionata, è quel tipo di versione minima della versione mysql quando si usa la gemma mysql2?

In ogni caso, ho fatto qualche altra ricerca su SO e ho trovato questa discussione Ruby mysql2 gem compiled for wrong mysql client library version. La domanda è simile al mio:

After updating MySQL to 5.5 using apt-get, the mysql2 gem stopped working.

Here's the error:

Incorrect MySQL client library version! This gem was compiled for 5.5.17 but the client library is 5.1.58. (RuntimeError)

La risposta a quel filo:

I have encounter the same error when using Ubuntu Server 11.04 and Percona Server, what have I done was:

replace /usr/lib/libmysqlclient.so.16.0.0 with /usr/lib/libmysqlclient.so.18.0.0

problema nel mio caso è che non ho questo tipo di file:

ls /usr/lib/mysql 
libdbug.a  libmyisam.a  libmysqlclient.a libmysqlclient_r.a libmystrings.a  libvio.a 
libheap.a  libmyisammrg.a  libmysqlclient.la libmysqlclient_r.la libmysys.a 

Most altri thread con argomenti simili riguardano Windows, ma io sono su OS X. Qualche idea su cosa posso provare dopo? Ulteriori informazioni sulla mia configurazione: OS X Lion, rvm, Rails 3.1.3, ruby ​​1.9.2p290. Lista Gem:

*** LOCAL GEMS *** 

actionmailer (3.1.3) 
actionpack (3.1.3) 
activemodel (3.1.3) 
activerecord (3.1.3) 
activeresource (3.1.3) 
activesupport (3.1.3) 
addressable (2.2.7) 
arel (2.2.1) 
bcrypt-ruby (3.0.1) 
builder (3.0.0) 
bundler (1.0.21) 
cancan (1.6.5) 
capybara (1.1.2) 
capybara-webkit (0.10.1) 
childprocess (0.3.0) 
coderay (1.0.5) 
coffee-rails (3.1.1) 
coffee-script (2.2.0) 
coffee-script-source (1.2.0) 
cucumber (1.1.4) 
cucumber-rails (1.2.1) 
database_cleaner (0.7.1) 
delayed_job (3.0.0) 
delayed_job_active_record (0.3.1) 
devise (2.0.0) 
diff-lcs (1.1.3) 
erubis (2.7.0) 
execjs (1.3.0) 
factory_girl (2.6.3) 
factory_girl_rails (1.7.0) 
faker (1.0.1) 
fakeweb (1.3.0) 
ffi (1.0.11) 
fileutils (0.7) 
gherkin (2.7.6) 
growl (1.0.3) 
guard (1.0.3) 
guard-bundler (0.1.3) 
guard-cucumber (0.7.5) 
guard-rspec (0.7.2) 
guard-spork (0.8.0) 
hike (1.2.1) 
i18n (0.6.0) 
jquery-rails (1.0.19) 
json (1.6.5) 
launchy (2.0.5) 
libv8 (3.3.10.4 x86_64-darwin-11) 
mail (2.3.0) 
make_voteable (0.1.1) 
method_source (0.7.1) 
mime-types (1.17.2) 
multi_json (1.0.4) 
mysql (2.8.1) 
mysql2 (0.3.11) 
nokogiri (1.5.0) 
orm_adapter (0.0.6) 
polyglot (0.3.3) 
pry (0.9.8.4) 
rack (1.3.6) 
rack-cache (1.1) 
rack-mount (0.8.3) 
rack-ssl (1.3.2) 
rack-test (0.6.1) 
rails (3.1.3) 
rails_autolink (1.0.5) 
railties (3.1.3) 
rake (0.9.2.2) 
rb-fsevent (0.9.1) 
rdiscount (1.6.8) 
rdoc (3.12) 
rest-client (1.6.7) 
rmagick (2.13.1) 
rspec (2.8.0) 
rspec-core (2.8.0) 
rspec-expectations (2.8.0) 
rspec-mocks (2.8.0) 
rspec-rails (2.8.1) 
rubyzip (0.9.5) 
sass (3.1.12) 
sass-rails (3.1.5) 
selenium-webdriver (2.18.0) 
slop (2.4.4) 
spork (0.9.2) 
sprockets (2.0.3) 
sqlite3 (1.3.5) 
term-ansicolor (1.0.7) 
therubyracer (0.9.9) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10) 
tzinfo (0.3.31) 
uglifier (1.2.2) 
warden (1.1.0) 
xpath (0.1.4) 

Aggiornamento ho controllato cosa homebrew installato per MySQL. Quando ho capito correttamente, questo dovrebbe essere il mysql versione della libreria client:

$ ls /usr/local/Cellar/mysql 
$ 5.5.15 

Ora ho bisogno di ottenere il mysql_config aggiornato alla 5.5.15?

Aggiornamento 2 Risolto. Questo ha fatto il trucco:

gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.15/bin/mysql_config 

Fonte: Install the mysql2 gem for a specific mysql client version?

+0

Come hai installato mysql? attraverso la preparazione o dalla fonte? – ctilley79

+0

Non sono sicuro, potrebbe essere qualsiasi cosa: macports, source, brew. Come posso controllarlo? – hebe

+0

Usa il comando 'which' e segui le directory sul suo punto di installazione. – nickpellant

risposta

10

avuto questo problema dopo aver aggiornato i pacchetti in homebrew. La gemma mysql2 ha semplicemente bisogno di sentirsi dire di ricompilare le sue componenti non ruby.

homebrew Supponendo che è impostato correttamente, il seguente dovrebbe risolvere il problema:

gem uninstall mysql2 
gem install mysql2 # or bundle install 

(a seconda della configurazione bundler, potrebbe essere necessario fare qualcosa di più complicato, ma questo era abbastanza per me)

+1

Lo stesso problema di aggiornamento a Ubuntu 15.04. Ho appena rimosso mysql2 e reinstallato. GRAZIE! –

+1

Ha lavorato per me su osx. Grazie molto.. – user3445140

Problemi correlati