2012-05-21 30 views
14

Tôi nhân bản repo github https://github.com/8bitpal/hackful, chạy 'bundle install' và bây giờ 'rake db: create'. Nhưng tôi nhận được một thông báo lỗi:Rails 3 - Phiên bản thư viện máy khách MySQL không chính xác! Gem biên dịch cho phiên bản thư viện máy khách sai

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

Cố gắng để tìm hiểu thêm infos về thiết lập mysql của tôi:

$ mysql_config --version 
$ 5.0.45 

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

Vì tôi hiếm khi làm công cụ quản trị hệ thống tôi cảm thấy một chút mất làm thế nào để interpretate thông tin này, tức là tại sao là "thư viện khách hàng 5.5.15" được đề cập, đó là loại phiên bản mysql phiên bản tối thiểu khi sử dụng đá quý mysql2?

Nhưng dù sao, tôi đã nghiên cứu thêm về SO và tìm thấy chủ đề này Ruby mysql2 gem compiled for wrong mysql client library version. Câu hỏi đặt ra là tương tự như tôi:

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)

Câu trả lời trong chủ đề đó:

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

vấn đề trong trường hợp của tôi là tôi không có một tập tin ví dụ:

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 

Hầu hết chủ đề khác với một chủ đề tương tự là về Windows, nhưng tôi đang ở trên OS X. Bất kỳ ý tưởng những gì tôi có thể thử tiếp theo? Thông tin thêm về thiết lập của tôi: OS X Lion, rvm, Rails 3.1.3, ruby ​​1.9.2p290. danh sách 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) 

Cập nhật Tôi đã kiểm tra những gì homebrew cài đặt cho mysql. Khi tôi hiểu chính xác, đây phải là phiên bản thư viện máy khách mysql:

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

Bây giờ tôi cần tải bản cập nhật mysql_config lên 5.5.15?

Cập nhật 2 Đã giải quyết. Cái này đã làm các trick:

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

Nguồn: Install the mysql2 gem for a specific mysql client version?

+0

Bạn đã cài đặt mysql như thế nào? thông qua brew hoặc từ nguồn? – ctilley79

+0

Không chắc chắn nữa, nó có thể là bất cứ điều gì: macports, nguồn, brew. Làm thế nào tôi có thể kiểm tra nó? – hebe

+0

Sử dụng lệnh 'which' và làm theo các thư mục quay lại điểm cài đặt của nó. – nickpellant

Trả lời

10

có vấn đề này sau khi nâng cấp các gói trong homebrew. Đá quý mysql2 chỉ cần được yêu cầu được biên dịch lại các thành phần không phải là ruby ​​của nó.

Giả sử homebrew được thiết lập một cách chính xác, sau đây sẽ khắc phục vấn đề này:

gem uninstall mysql2 
gem install mysql2 # or bundle install 

(tùy thuộc vào cấu hình bundler của bạn, bạn có thể cần phải làm điều gì đó phức tạp hơn, nhưng điều này là đủ cho tôi)

+1

Cùng một vấn đề khi nâng cấp lên Ubuntu 15.04. Tôi chỉ cần gỡ bỏ mysql2 và cài đặt lại. CẢM ƠN BẠN! –

+1

Làm việc cho tôi trên osx. Cảm ơn nhiều.. – user3445140

Các vấn đề liên quan