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
的版本,所以一旦你发出命令bundle
,rails
将始终从远程安装最新的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)”