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?