无法激活 mysql2 (~> 0.3.10),已激活 mysql2-0.4.3

can't activate mysql2 (~> 0.3.10), already activated mysql2-0.4.3

当 运行 一个 rails 应用程序时,我收到以下错误 -

DEPRECATION WARNING: Support for Rails < 4.1.0 will be dropped. (called from warn at /home/user/.rvm/rubies/ruby-2.1.6/lib/ruby/2.1.0/forwardable.rb:183)
/home/user/.rvm/gems/ruby-2.1.6/gems/signalfx-0.1.0/lib/signalfx/conf.rb:3:in `<top (required)>': Use RbConfig instead of obsolete and deprecated Config.
/home/user/.rvm/gems/ruby-2.1.6/gems/bundler-1.11.2/lib/bundler/rubygems_integration.rb:314:in `block in replace_gem': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (can't activate mysql2 (~> 0.3.10), already activated mysql2-0.4.3. Make sure all dependencies are added to Gemfile.) (LoadError)
    from /home/user/.rvm/gems/ruby-2.1.6/gems/activerecord-3.2.17/lib/active_record/connection_adapters/mysql2_adapter.rb:3:in `<top (required)>'
    from /home/user/.rvm/gems/ruby-2.1.6/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
    from /home/user/.rvm/gems/ruby-2.1.6/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `block in require'
    from /home/user/.rvm/gems/ruby-2.1.6/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /home/user/.rvm/gems/ruby-2.1.6/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'

在 gem 文件中,我有条目:gem 'mysql2', '~> 0.3'

正在检查安装了哪个 gem:

$ gem list|grep mysql2

activerecord-mysql2-adapter (0.0.3)
mysql2 (0.4.3)

我该如何解决这个错误?

更新您的 Gemfile 指定确切的版本

gem 'mysql2', '0.3.20'

然后 运行

bundle update mysql2

这应该使用 Gemfile

中的版本更新您的 mysql2 gem

通常可以通过在命令前加上 bundle exec 来避免这种情况 - 这将确保命令在捆绑的 gem 的上下文中是 运行,而不是系统 gem。

如果您对多个项目执行 bundle install 但未设置部署路径或以其他方式为单个项目分离已安装的 gem,则可能会发生这种情况。

例如bundle exec rails s