Gem::LoadError 为数据库适配器指定了 'mysql2',但未加载 gem

Gem::LoadError Specified 'mysql2' for database adapter, but the gem is not loaded

我正在尝试 运行 一个 rails 应用程序。一切都很基本。 我的 gem 文件是

gem 'rails', '4.0.0'

gem 'mysql2'

database.yml 是

发展: 适配器:mysql2

编码:utf8

数据库:#new_app_development

池:5

用户名:root

密码:密码

主机:本地主机

gem 列表给出 mysql2 (0.4.0)

但我还是得到 Gem::LoadError 为数据库适配器指定了 'mysql2',但未加载 gem。将 gem 'mysql2' 添加到您的 Gemfile。

我尝试了 bundle install 和 gem install mysql2。

这是由于 mysql2 刚刚在 9 月 8 日升级到 0.4.0(see here) 造成的,它与当前的 rails 版本存在一些兼容性问题。因为默认情况下,rails 不会在 Gemfile 中指定 mysql2 的版本,所以一旦您发出命令 bundlerails 将始终安装最新的mysql2 来自远程,在本例中为 0.4.0

目前,rails官方已经解决了这个问题,他们将从下一个rails 4.2(see here)

开始支持mysql2 0.4.0

显然,解决方案是通过在 Gemfile 中将其版本指定为 0.3.x 来降级 mysql2,如下所示:

gem 'mysql2', '~> 0.3.20'

然后,发出命令bundle

它不会加载 mysql2 gem 因为 mysql2(0.4.1) gem 的新版本无法加载 mysql2_adaptor。这对我有用。

gem 'mysql2', '~> 0.3.13'

和运行

bundle install

如果仍然遇到问题,那么This solution肯定会有所帮助

注意: 我假设您的系统上安装了 mysql 数据库:P

 gem 'mysql2', '~> 0.3.20'

错误:执行时 gem ... (Gem::CommandLineError)

Unknown command mysql2,

但是

gem install mysql2 

构建本机扩展。这可能需要一段时间...

Successfully installed mysql2-0.4.1

1 gem installed

然后捆绑安装,但是这个组合不起作用