【问题标题】:Gem::LoadError for mysql2 gem, but it's already in Gemfilemysql2 gem 的 Gem::LoadError,但它已经在 Gemfile 中
【发布时间】:2014-05-20 20:50:46
【问题描述】:
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,并尝试重新启动服务器,但仍然出现错误。

【问题讨论】:

  • 你在添加gem并重启服务器后运行bundle了吗?
  • @BachanSmruty:是的,我已经做到了。
  • 这是在部署中吗?你跑了吗bundle install --deployment
  • 就我而言,有一个执行不佳的“组:mysql,可选:真做”。删除了逻辑,只包含了硬编码的 gem。

标签: ruby-on-rails mysql2 gemfile


【解决方案1】:

我解决了这个问题,安装了 libmysqlclient-dev。 sudo aptitude install libmysqlclient-dev 然后运行 ​​bundle。

【讨论】:

    【解决方案2】:

    改成

    gem 'mysql2', '~> 0.3.18'
    

    在您的 Gemfile 中。

    官方 mysql2 Github 上的这个帖子说要这样做。如果您是 rails 版本 4.x.x,则需要声明该版本号。

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

    然后运行bundle update mysql2

    【讨论】:

    • 谢谢!准确地说,您不想要bundle update,因为这会更新您的所有宝石。命令是bundle update mysql2。可能看起来很明显,但这是错误的命令,可能会产生意想不到的后果。 (要从bundle update 恢复,请运行git checkout -- Gemfile.lock
    【解决方案3】:

    我之前安装了 mysql2 0.4.5,但是这给了我这个错误,所以我安装了另一个版本的 mysql2:

    gem install mysql2 --version 0.3.20

    希望这能解决您的问题。

    【讨论】:

      【解决方案4】:

      我是 Ruby on Rails 和网站的新手,但听说什么对我有用。

      我不得不将我的 gemfile,gem 'mysql2' 更改为 gem 'mysql2','~> 0.3.13' 然后在rails中我输入了bundle install 然后我尝试了 rails 并得到了错误 所以然后我尝试了捆绑更新mysql2 然后在 rails 中输入 rails s,它就起作用了

      【讨论】:

        【解决方案5】:

        如果您使用的是较新版本的 rails > 4,则可能会出现此问题

        做这两个简单的步骤,它会工作。 打开您的 Gemfile 并找到以下行

        gem 'mysql2'
        

        用下面的特定 mysql 版本替换该行

        gem 'mysql2', '~> 0.3.18'
        

        现在停止服务器并运行 bundle

        bundle install
        

        现在重新启动您的服务器。它应该可以工作。

        rails s
        

        【讨论】:

          【解决方案6】:

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

          gem 'mysql2', '~> 0.3.13'

          希望它应该可以工作。

          【讨论】:

            【解决方案7】:

            作为 ruby​​ 的初学者,我无法弄清楚这条线 gem 'mysql2', '~> 0.3.18'

            它只是意味着转到您的 rails 项目文件夹,然后有 mysql2 的行它会像 0.4* 所以你可以把它改成 gem 'mysql2', '~> 0.3.18'

            由于我们有了新的定义,我们必须重建依赖关系,以便执行上面解释的简单命令 bundle install

            【讨论】:

              【解决方案8】:

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

              gem 'mysql2', '~> 0.3.13'
              

              然后运行

              bundle install
              

              【讨论】:

                【解决方案9】:

                如果您在升级到 rails 4.2.4(也适用于 rails 4.1.5)时遇到此错误,请尝试使用此版本的 mysql2:

                gem 'mysql2', '~> 0.3.18'
                

                显然 mysql2 仍然与较新版本的 rails 不兼容,因为 rails 4.2.4 在我 2015 年 9 月 8 日回答这个问题时相当新,所以在你的 Gem 文件中使用上面的行并运行:

                bundle install 
                

                你应该很高兴

                【讨论】:

                • 在 msyql2_adapter.rb 中,我找到以下代码: gem 'mysql2', '~> 0.3.13' require 'mysql2' 这可能是默认 mysql2 版本 4.xx 不起作用的原因
                【解决方案10】:

                当我在最新版本 (0.4.0) 之前指定 mysql2 gem 版本时,它对我有用。 由于某种原因,Rails 4.2.4 和 gem 0.4.0 存在问题。所以,为了解决这个问题,我刚刚指定了之前发布的 gem:0.3.20,它对我来说很好用!

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

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

                【讨论】:

                  【解决方案11】:

                  这是我解决这个问题的方法:

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

                  学分: How do you undo bundle install --without

                  【讨论】:

                    【解决方案12】:

                    我解决了这个问题,在本地安装了 mysql2 gem(gem install mysql2, bundle install)并将下面的行添加到 Gemfile:

                    gem 'mysql2'

                    在database.yml中设置mysql2适配器

                    adapter: mysql2

                    也很重要!

                    【讨论】:

                      【解决方案13】:

                      我遇到了同样的错误,这是因为 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 并将行 gem 'mysql2', '~> 0.3.13' 更改为 gem 'mysql2', '~> 0.3.11',到目前为止它工作正常。

                      【讨论】:

                        【解决方案14】:

                        升级到 Rails 4.1 后我遇到了同样的错误,我设法通过更新 mysql2 解决了它。在你的 rails app 文件夹中运行它:

                        $ bundle update mysql2
                        

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2020-10-12
                          • 2014-06-10
                          • 2013-10-16
                          • 2018-08-12
                          • 1970-01-01
                          • 2015-12-04
                          • 1970-01-01
                          • 2015-03-21
                          相关资源
                          最近更新 更多