带有mysql2和rails3(bundler)的RuntimeError

时间:2010-08-12 11:20:32

标签: mysql ruby-on-rails bundler

我收到此错误

`establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
  from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord-

Here是整个错误和我的配置和gemfile的转储。

11 个答案:

答案 0 :(得分:101)

使用rails 3.0.7和mysql2 0.3.2时出现了同样的错误。 解决方案,我发现here, 是使用旧版本的mysql2。因此,将您的gemfile编辑为

gem 'mysql2', '< 0.3'

并运行

bundle install 

答案 1 :(得分:36)

还需要在database.yml中将适配器从mysql更改为mysql2,如此处所述 Install mysql2 gem on Snow Leopard for Rails 3 with rvm

自:

development: adapter: mysql

要:

development: adapter: mysql2

答案 2 :(得分:14)

您是否在gemfile中包含mysql2 gem而不是旧的mysql gem,然后运行bundle install?

答案 3 :(得分:6)

如果您正在使用rvm,并且可能在rvm之外添加了mysql2,请尝试以下步骤: 确认你的Gemfile说:

gem 'mysql2'

或Rails2.x:

gem 'mysql2', '~> 0.2.11'

然后:

$ cd RAILS_ROOT
$ gem uninstall mysql2

Select gem to uninstall:
 1. mysql2-0.2.11
 2. mysql2-0.3.6
 3. All versions
> 3 # select "All versions"
$ rvm gemset install mysql2
$ bundle install

现在rails应该正常启动。

答案 4 :(得分:3)

这也解决了我遇到的问题:

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter)

你实际上需要运行:gem install mysql2并将gem添加到你的配置中。

答案 5 :(得分:2)

只需运行“gem install mysql” 也在gemfile中添加相同的内容并运行bundle。 工作

答案 6 :(得分:2)

如果有人仍然面临在Windows上使用rails 3安装mysql2 gem的问题,请参阅安装的详细步骤 -

http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

答案 7 :(得分:1)

我是ruby,rails和linux的初学者。因此,如果此解决方案不起作用,我不承担任何责任:)

第1步:

sudo gem uninstall mysql2

第2步:

sudo gem install mysql -v 0.2.7

启动webrick,如果同样的问题仍然出现重新安装rails。

此解决方案适合我。

答案 8 :(得分:1)

对我来说同样的问题。升级到Rails 3.1.rc4然后降级到3.0.3。为我工作。

答案 9 :(得分:0)

  

从0.3.0开始,ActiveRecord 3.1 - ActiveRecord适配器已经   退出这个宝石并进入ActiveRecord本身。如果你需要   使用带有Rails版本的mysql2&lt; 3.1确保并指定gem   你的Gemfile中的“mysql2”,“〜&gt; 0.2.7”

可以在pre.03.0版本的mysql2中找到丢失的文件(no such file to load)。

引自documentation of mysql2

答案 10 :(得分:0)

从Ubuntu 11.10升级到12.04后,我遇到了同样的错误。这是我解决问题的方法:

gem uninstall mysql2
bundle

我认为这里的关键是'原生扩展' - 我想当我上次安装时,我使用的是不同版本的mysql。

Installing mysql2 (0.3.11) with native extensions