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

Posted

技术标签:

【中文标题】Gem::LoadError 为数据库适配器指定了 \'mysql2\',但是 gem 没有加载【英文标题】:Gem::LoadError Specified 'mysql2' for database adapter, but the gem is not loadedGem::LoadError 为数据库适配器指定了 'mysql2',但是 gem 没有加载 【发布时间】:2015-12-04 18:26:40 【问题描述】:

我正在尝试运行一个 Rails 应用程序。一切都很基本。 我的 gemfile 是

gem 'rails', '4.0.0'

gem 'mysql2'

database.yml 是

发展: 适配器:mysql2

编码:utf8

数据库:#new_app_development

池:5

用户名:root

密码:密码

主机:本地主机

宝石列表给出 mysql2 (0.4.0)

但我仍然收到 Gem::LoadError 为数据库适配器指定了“mysql2”,但未加载 gem。将gem 'mysql2' 添加到您的 Gemfile。

我尝试了 bundle install 和 gem install mysql2。

【问题讨论】:

也许你需要这个:[gemload error][1] [1]: ***.com/questions/32457657/… 【参考方案1】:

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

gem 'mysql2', '~> 0.3.13'

然后运行

bundle install

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

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

【讨论】:

【参考方案2】:
 gem 'mysql2', '~> 0.3.20'

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

Unknown command mysql2,

但是

gem install mysql2 

构建原生扩展。这可能需要一段时间...

成功安装mysql2-0.4.1

已安装 1 个宝石

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

【讨论】:

【参考方案3】:

这是由 mysql2 于 9 月 8 日刚刚升级到 0.4.0 (see here) 引起的,它与当前的 rails 版本存在兼容性问题。因为默认情况下,rails 没有在Gemfile 中指定mysql2 的版本,所以一旦你发出命令bundlerails 将始终从远程安装最新的mysql2,即@987654332 @ 在这种情况下。

Forturnly,rails 官方已经解决了这个问题,他们将在下一个rails 4.2(see here) 支持mysql2 0.4.0

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

gem 'mysql2', '~> 0.3.20'

然后,发出命令bundle

【讨论】:

以上是关于Gem::LoadError 为数据库适配器指定了 'mysql2',但是 gem 没有加载的主要内容,如果未能解决你的问题,请参考以下文章

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

mysql2 gem 的 Gem::LoadError,但它已经在 Gemfile 中

安装 Phusion 乘客时出错“在 [] (Gem::LoadError) 中找不到乘客 (>= 0)”

Gem::LoadError: You have already activated rake

如何使用 Bundler 添加 gem

如何在黄瓜rails中将mysql转换为psql