mysql2 和 rails3 的 RuntimeError(捆绑程序)

Posted

技术标签:

【中文标题】mysql2 和 rails3 的 RuntimeError(捆绑程序)【英文标题】:RuntimeError with mysql2 and rails3 (bundler) 【发布时间】:2011-03-28 21:06:23 【问题描述】:

我收到此错误

`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 的转储。

【问题讨论】:

我遇到了同样的问题,经过多次分析,我能够在带有rails3的windows上成功安装mysql2。我遵循的过程在以下博客文章中给出。 kyybaventures.com/blog/installing-mysql2-gem-ruby-rails-windows希望,解决上述问题会很有用。玛尼 【参考方案1】:

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

【讨论】:

这可能对某人有所帮助。 ***.com/questions/3608287/…【参考方案2】:

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

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 添加到您的配置中。

【讨论】:

我在手动安装 mysql2 gem 时遇到了这个问题。然后我按照您在 gemfile 中所说的那样使用它并运行捆绑安装。它加载了,但我得到了无法连接到 mysql.sock 错误。所以我然后跑了 env ARCHFLAGS="-arch i386" gem install mysql2 --version 0.2.6 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config (我在mac pro上)和这似乎解决了我的问题。 Ran rails s 和 hey presto ..希望这对其他人有所帮助:) @dryprogrammers - 我可以给你 100+,请把你的评论作为答案,它也与 Ubuntu 12-10 非常相关。在完全更新的 Ubuntu 12.10 Precise 上无法安装。撞。经过数小时 (6-8) 的搜索和尝试许多事情后,我尝试了你的 mac hack 作为最后的手段。瞧,我(咳嗽)根本不关心 Mac……这对我来说是这样的,现在我可以上床睡觉了……快乐! :)【参考方案3】:

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

发件人:

development: adapter: mysql

收件人:

development: adapter: mysql2

【讨论】:

【参考方案4】:

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

【讨论】:

这让我明白了。我运行了“sudo gem install mysql2”,它成功了。谢谢! 不推荐在 Gemfile 之外手动管理 gem。对于其他开发人员或部署来说,它很容易出现依赖问题。【参考方案5】:

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

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

【讨论】:

【参考方案6】:

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

gem 'mysql2', '< 0.3'

然后运行

bundle install 

【讨论】:

这个在 Ubuntu 10.04 上为我修复了!!如果使用 RVM,您也可以使用:rvm gem install mysql2 --version=0.2.7,并将上述行添加到您的 Gemfile。 我今天遇到了同样的问题,升级到 3.1 又降到 3.0.7。这就是修复。 除了那些版本的 mysql2 在大型站点中存在阻塞问题 这里相同 - 显然 mysql2 > 3.0 不会立即加载 AR 适配器 更多启发,请参阅github上的以下mysql2问题,其中说mysql 0.3.x只能用于rails 3.1及更高版本:github.com/brianmario/mysql2/issues/155【参考方案7】:

我是 ruby​​、rails 和 linux 的初学者。所以如果这个解决方案不起作用,我不承担任何责任:)

第 1 步:

sudo gem uninstall mysql2

第 2 步:

sudo gem install mysql -v 0.2.7

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

这个解决方案对我有用。

【讨论】:

使用 sudo 安装 gem 通常不是不好的做法吗? ***.com/questions/2119064/…【参考方案8】:

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

【讨论】:

【参考方案9】:

如果您使用的是 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 应该可以正常启动了。

【讨论】:

【参考方案10】:

截至 0.3.0 和 ActiveRecord 3.1 - ActiveRecord 适配器已 从这个 gem 中取出并进入 ActiveRecord 本身。如果你需要 使用 mysql2 和 Rails 版本 0.2.7"

丢失的文件(no such file to load)可以在 mysql2 0.3.0 之前的版本中找到。

引自documentation of mysql2

【讨论】:

【参考方案11】:

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

gem uninstall mysql2
bundle

我认为这里的关键是“本机扩展”——我想我上次安装时使用的是不同版本的 mysql。

Installing mysql2 (0.3.11) with native extensions

【讨论】:

以上是关于mysql2 和 rails3 的 RuntimeError(捆绑程序)的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法构建 gem 本机扩展(rails 3.2.3 上的 mysql2)

为啥带有 Mysql2 Gem ActiveRecord::Base.connection.execute(sql) 的 Rails 3 返回 Array 而不是 Hash?

导轨服务器错误? (导轨 3)

尝试使用 mysql2 gem 安装应用程序时出错

如何在使用 MySQL 2 的 Rails 3 项目中使用 WHERE IN?

更新我的 gem 时出现问题! [复制]