【发布时间】:2012-02-04 17:49:54
【问题描述】:
我会尽量简短:
对数据库使用 Rails 3.2.1 和 mysql2;在 Ubuntu 11.10 上运行
在 开发 环境中一切正常
当我在 production 中启动我的服务器 (WEBrick) 时,它可以正常启动,但在加载任何页面后,它会引发以下错误:
ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished):
activerecord (3.2.1)
lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in
retrieve_connection'
activerecord (3.2.1)
lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in
`retrieve_connection'
activerecord (3.2.1)
lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in
`connection'
...
/home/metjush/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpserver.rb:138:in
`service'
/home/metjush/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/home/metjush/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/webrick/server.rb:191:in `block
in start_thread'
在尝试找到任何可能的错误来源,并咨询了十亿个不同的网站和类似的报告后,我仍然无法找到问题所在。我的 database.yml (现在在 localhost 上运行,并且我在生产环境中的设置与开发环境中的设置相同)很好,我的 Gemfile 没问题(gem 'mysql2' 包括在内,不用担心),生产数据库已创建并且 rake db:migrate 迁移它没有问题...我没有想到或在互联网上没有找到的任何其他可能的错误来源?
我强调,这只发生在生产中
感谢您的帮助
编辑发布我的 Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.1'
gem 'mysql2'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'bcrypt-ruby', :require => 'bcrypt'
gem 'rufus-scheduler'
gem 'gmaps4rails'
希望这会有所帮助 - 虽然我真的没有发现它有什么问题。
编辑两个
奇怪的是,当我在生产环境中启动 rails 控制台时,我没有任何问题 - MySQL 查询工作,模型实例可以毫无问题地保存。当我尝试从浏览器访问数据库时,我只会收到上述错误。
【问题讨论】:
-
如果你将
\config\environment\development.rb复制到\config\environment\production.rb,是否有效? -
您的本地主机上是否正确设置了
username和password?仅当 rails 无法连接到 db 服务器或数据库时才会发生这种情况。 -
将
development.rb复制到production.rb并没有改变任何东西,仍然是同样的错误。 -
因为我的 localhost 有一个用户名和一个密码,并且在 database.yml 中为开发和生产设置了相同的用户名和密码,这不可能是原因
标签: mysql ruby-on-rails ruby