使用 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
相应地,我尝试告诉 bundle 用 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 gemspecs,通过 apt-get 卸载了所有与 mysql 相关的软件包并重新安装了所有内容,然后再次尝试使用 mysql-config 标志安装 gem .. 但事实证明这一切都是徒劳的。错误仍然存在。
编辑 2:正如 John Bachir 所建议的,我确认 mysql_config 包含 MySQL 5.5 版。