2012-05-21 12 views
14

Ich klonte die GitHub Repo https://github.com/8bitpal/hackful, führen 'Bundle-Installation' und jetzt 'Rake db: create'. Aber ich erhalte eine Fehlermeldung:Rails 3 - Falsche Version der MySQL-Client-Bibliothek! Gem kompiliert für die falsche Client-Bibliothek Version

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

Versucht, mehr Infos über meine mysql-Setup herausfinden:

$ mysql_config --version 
$ 5.0.45 

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

Da ich selten Sysadmin Sachen fühle ich mich ein wenig verloren, wie diese Informationen zu interpretieren, das heißt warum wird die "client library 5.5.15" erwähnt, ist das eine minimale version mysql-version bei der verwendung des mysql2 gems?

Jedenfalls habe ich etwas mehr Forschung über SO und fand diesen Thread Ruby mysql2 gem compiled for wrong mysql client library version. Die Frage ist, wie bei mir:

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)

Die Antwort in diesem Thread:

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

Problem in meinem Fall ist, dass ich nicht eine solche Datei haben:

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 

meisten andere Threads mit einem ähnlichen Thema sind über Windows, aber ich bin auf OS X. Irgendwelche Ideen, was kann ich als nächstes versuchen? Weitere Infos zu meinem Setup: OS X Lion, Rvm, Rails 3.1.3, Ruby 1.9.2p290. Gem Liste:

*** 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) 

aktualisieren Ich habe, was Homebrew für mysql installiert. Wenn ich es richtig verstanden wird, soll dies die MySQL-Client-Bibliothek Version sein:

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

Jetzt muß ich die mysql_config auf 5.5.15 aktualisiert bekommen?

Update 2 Gelöst. Dieser hat den Trick:

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

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

+0

Wie hast du MySQL installiert? durch brühen oder von der Quelle? – ctilley79

+0

Nicht sicher mehr, es könnte alles sein: Macports, Quelle, brauen. Wie kann ich es überprüfen? – hebe

+0

Verwenden Sie den 'which' Befehl und folgen Sie den Verzeichnissen zurück zum Installationspunkt. – nickpellant

Antwort

10

hat dieses Problem nach dem Upgrade von Paketen in Homebrew. Das mysql2-Juwel muss einfach dazu aufgefordert werden, seine nicht-rubinroten Komponenten neu zu kompilieren.

Unter der Annahme, homebrew richtig eingerichtet ist, sollte folgende das Problem beheben:

gem uninstall mysql2 
gem install mysql2 # or bundle install 

(je nach bundler Config, müssen Sie möglicherweise etwas komplizierter machen, aber das war genug für mich)

+1

Gleiches Problem Upgrade auf Ubuntu 15.04. Ich habe nur mysql2 entfernt und neu installiert. DANKE! –

+1

Arbeitete für mich auf osx. Danke vielmals.. – user3445140

Verwandte Themen