mysql2 gem的Gem :: LoadError,但它已经在Gemfile中(Gem::LoadError for mysql2 gem, but it's already in Gemfile)

问题
Gem::LoadError
Specified 'mysql2' for database adapter, but the gem is not loaded.
Add `gem 'mysql2'` to your Gemfile

加载以下文件时发生此错误:

active_record/base

这是我在运行Rails服务器时遇到的错误。

The mysql2 gem has been added to the Gemfile as well.

我已经完成了bundle install ,并尝试重新启动服务器,但仍然收到错误消息。

回答1

如果升级到Rails 4.2.4时也出现此错误(也使用rails 4.1.5),请尝试使用此版本的mysql2:

gem 'mysql2', '~> 0.3.18'

显然,mysql2仍与较新版本的rails不兼容,因为在我于2015年9月8日回答这个问题时,rails 4.2.4还是很新的,因此请在您的Gem文件中使用上述代码并运行:

bundle install 

你应该很好去

回答2

当我在最新版本(0.4.0)之前指定mysql2 gem版本时,它对我有用。 出于某种原因,Rails 4.2.4和gem 0.4.0出现了问题。 因此,要解决该问题,我只指定了先前发布的gem:0.3.20,它对我来说很好用!

gem 'mysql2', '~> 0.3.20'
bundle install

您可以在此处检查所有gems版本:https://rubygems.org/gems/mysql2/versions

回答3

改成

gem 'mysql2', '~> 0.3.18'

在您的Gemfile中。

官方mysql2 Github上的这个线程说可以做到这一点。 如果您使用的是Rails版本4.xx,则需要声明该版本号

https://github.com/brianmario/mysql2/issues/675

然后运行bundle update mysql2

回答4

升级到Rails 4.1之后,我遇到了同样的错误,并且设法通过更新mysql2来解决了该错误。 在您的rails app文件夹中运行此命令:

$ bundle update mysql2
回答5

如果您使用的是Rails> 4的较新版本,则可能会发生此问题。

做这两个简单的步骤,就可以了。 打开您的Gemfile并找到以下行

gem 'mysql2'

将该行替换为特定的mysql版本,如下所示

gem 'mysql2', '~> 0.3.18'

现在停止服务器并运行捆绑软件

bundle install

现在重新启动服务器。 它应该工作。

rails s
回答6

作为红宝石的初学者,我无法弄清宝石'mysql2','〜> 0.3.18'

它只是意味着转到您的rails项目文件夹,然后存在mysql2的行,它将像0.4 *,因此您可以将其更改为gem'mysql2','〜> 0.3.18'

并且有了新的定义,我们必须重建依赖关系,以便按照顶部捆绑包安装中的说明执行该简单命令

回答7

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

gem 'mysql2', '~> 0.3.13'

并运行

bundle install
回答8

我有同样的错误,这是因为Rails 4.1要求最低的mysql2版本为0.3.13,而与Windows的最大兼容版本为0.3.11。

所以我编辑了文件c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rb并更改了行c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rb gem 'mysql2', '~> 0.3.13'gem 'mysql2', '~> 0.3.13' gem 'mysql2', '~> 0.3.11' ,到目前为止它可以正常工作。

回答9

这是我固定的方法:

 bundle config
 bundle config --delete without
 bundle install --deployment --without development test postgres

鸣谢:如何撤消捆绑包安装-不用

回答10

它不会加载mysql2 gem,因为新版本的mysql2(> = 0.4.0)gem无法加载mysql2_adaptor。 你可以试试这个吗?

gem 'mysql2', '~> 0.3.13'

希望它应该能工作。

回答11

我解决了这个问题,安装了mysql2 gem local(gem安装mysql2,捆绑安装),并将以下行添加到Gemfile中:

gem 'mysql2'

在database.yml中设置mysql2适配器

adapter: mysql2

也很重要!

回答12

我是Ruby on Rails和网站上的新手,但是听到了对我有用的东西。

我必须将我的gemfile,gem'mysql2'更改为gem'mysql2','〜> 0.3.13',然后在rails中键入bundle install然后尝试用rails s并出现错误,所以我尝试在bundle中键入mysql2然后更新mysql2 rails,它起作用了

回答13

我解决了这个问题,安装了libmysqlclient-dev。 sudo aptitude安装libmysqlclient-dev并在以后运行bundle。

回答14

我以前安装了mysql2 0.4.5,但这给了我这个错误,所以我通过以下方式安装了另一个版本的mysql2:

gem安装mysql2 --version 0.3.20

希望这能解决您的问题。


更多相关内容:请点击查看