Rails 3 - некорректная версия клиентской библиотеки MySQL! Gem скомпилирован для неправильной версии клиентской библиотеки
Я клонировал github repo https://github.com/8bitpal/hackful, запустил 'bundle install' и теперь "rake db: create". Но я получаю сообщение об ошибке:
Incorrect MySQL client library version! This gem was compiled for 5.0.45 but the client library is 5.5.15.
Пытался узнать больше информации о моей настройке mysql:
$ mysql_config --version
$ 5.0.45
$ mysql
$ mysql> SELECT version();
+-----------+
| version() |
+-----------+
| 5.1.57 |
+-----------+
Поскольку я редко делаю sysadmin, я чувствую себя немного потерянным, как интерпретировать эту информацию, то есть почему упоминается "клиентская библиотека 5.5.15", является ли эта версия минимальной версии mysql при использовании драгоценного камня mysql2?
Во всяком случае, я сделал еще несколько исследований по SO и нашел эту нить
Ruby mysql2 gem, скомпилированный для неправильной версии клиентской библиотеки mysql. Вопрос похож на мой:
После обновления MySQL до 5.5, используя apt-get, камень mysql2 остановился работа.
Здесь ошибка:
Неверная версия клиентской библиотеки MySQL! Этот камень был составлен для 5.5.17, но клиентская библиотека - 5.1.58. (RuntimeError)
Ответ в этом потоке:
Я столкнулся с той же ошибкой при использовании Ubuntu Server 11.04 и Percona Server, что я сделал:
заменить/usr/lib/libmysqlclient.so.16.0.0 с /usr/lib/libmysqlclient.so.18.0.0
Проблема в моем случае заключается в том, что у меня нет такого файла:
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
Большинство других потоков с подобной темой относятся к Windows, но я на OS X. Любые идеи, что я могу попробовать дальше? Дополнительная информация о моей настройке: OS X Lion, rvm, Rails 3.1.3, ruby 1.9.2p290. Список драгоценных камней:
*** 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)
Обновление
Я проверил, что для доморощенного было установлено для mysql. Когда я понял это правильно, это должна быть версия клиентской библиотеки mysql:
$ ls /usr/local/Cellar/mysql
$ 5.5.15
Теперь мне нужно обновить mysql_config до 5.5.15?
Обновление 2
Решаемые. Этот трюк сделал:
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.15/bin/mysql_config
Источник: Установите gem mysql2 для конкретной клиентской версии mysql?
Ответы
Ответ 1
Была ли эта проблема после обновления пакетов в homebrew. Драйвер mysql2 просто нужно попросить перекомпилировать его нерубинные компоненты.
Предполагая, что доморощенный настроен правильно, следующее должно устранить проблему:
gem uninstall mysql2
gem install mysql2 # or bundle install
(в зависимости от конфигурации вашего пакета, вам может потребоваться сделать что-то более сложное, но этого было достаточно для меня)
Ответ 2
Я решил проблему, основанную на этом учебнике, которая помогла мне установить правильную версию mysql для рельсов
http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/