apt-get を使用して MySQL を 5.5 に更新した後、mysql2
gem が機能しなくなりました。
エラーは次のとおりです。
Incorrect MySQL client library version!
This gem was compiled for 5.5.17 but the client library is 5.1.58. (RuntimeError)
mysql_config で再インストールしようとしましたが、違いはないようです..
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config
それに応じて、バンドルにmysql-configでmysql2をコンパイルするように指示しようとしましたが、それでもエラーは残ります..
bundle config build.mysql2 --with-mysql-config=/usr/bin/mysql_config
bundle install
gem の古いバージョン (v0.2.6) を試したところ、Rails コンソールが開きましたが、いずれかのタイプのクエリを実行するとクラッシュしました。
mysql2 gem の最新バージョンを試したときの完全なエラー スタックは次のとおりです。
[marco@linode:/www] 07:29:00 AM: rails c
/users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/mysql2-0.3.10/lib/mysql2.rb:9:in `require': Incorrect MySQL client library version! This gem was compiled for 5.5.17 but the client library is 5.1.58. (RuntimeError)
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/mysql2-0.3.10/lib/mysql2.rb:9:in `<top (required)>'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /www/config/application.rb:7:in `<top (required)>'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/commands.rb:38:in `require'
from /users/marco/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/commands.rb:38:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
編集:すべてのmysql2 gemspecをキャッシュから削除し、apt-getを介してすべてのmysql関連パッケージをアンインストールし、すべてを新たに再インストールしてから、mysql-configフラグを使用してgemを再度インストールしようとしました..しかし、すべて無駄であることが判明しました。エラーは残ります。
編集 2 : John Bachir が示唆したように、mysql_config に MySQL バージョン 5.5 が含まれていることを確認しました。