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?
Bạn đã cài đặt mysql như thế nào? thông qua brew hoặc từ nguồn? – ctilley79
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
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