【问题标题】: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。

【问题讨论】:

标签: ruby-on-rails gem rubygems


【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-13
        • 2014-08-11
        • 1970-01-01
        • 1970-01-01
        • 2015-12-26
        • 2014-09-05
        • 2016-01-10
        • 1970-01-01
        相关资源
        最近更新 更多