关于rails上的ruby:PG ::错误服务器意外关闭了连接

PG::Error server closed the connection unexpectedly

我是Ruby on rails的新手。 我已经通过教程learning by examples创建了两个基本的演示应用程序

突然它停止为我的新示例应用程序工作。

我已经生成了一个控制器Pages和两个动作homecontact,没什么特别的。

现在,除了localhost:3000的默认index.html rails页面之外,我无法打开任何页面。 localhost:3000/pages/homelocalhost:3000/pages/contact处的页面返回此错误。

PG::Error

server closed the connection unexpectedly This probably means the
server terminated abnormally before or while processing the request.

有时(通常当我重新启动postgresql时),

PG::Error

server closed the connection unexpectedly This probably means the
server terminated abnormally before or while processing the request.
could not send startup packet: Broken pipe

这是我的堆栈跟踪

activerecord (3.2.8)
lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in
initialize' activerecord (3.2.8)
lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in
new' activerecord (3.2.8)
lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in
connect' activerecord (3.2.8)
lib/active_record/connection_adapters/postgresql_adapter.rb:329:in
initialize' activerecord (3.2.8)
lib/active_record/connection_adapters/postgresql_adapter.rb:28:in
new' activerecord (3.2.8)
lib/active_record/connection_adapters/postgresql_adapter.rb:28:in
postgresql_connection' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in
new_connection' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in
checkout_new_connection' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in
block (2 levels) in checkout' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in
loop' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in
block in checkout'
/home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in
checkout' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in
block in connection'
/home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in
mon_synchronize' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in
connection' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in
retrieve_connection' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in
retrieve_connection' activerecord (3.2.8)
lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in
connection' activerecord (3.2.8)
lib/active_record/query_cache.rb:67:in
rescue in call' activerecord
(3.2.8) lib/active_record/query_cache.rb:61:in call' activerecord
(3.2.8)
lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in
call' actionpack (3.2.8)
lib/action_dispatch/middleware/callbacks.rb:28:in block in call'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in
run_3261957284442330683_call_599627944998934036__callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:405:in
__run_callback' activesupport (3.2.8)
lib/active_support/callbacks.rb:385:in
_run_call_callbacks'
activesupport (3.2.8) lib/active_support/callbacks.rb:81:in
run_callbacks' actionpack (3.2.8)
lib/action_dispatch/middleware/callbacks.rb:27:in
call' actionpack
(3.2.8) lib/action_dispatch/middleware/reloader.rb:65:in call'
actionpack (3.2.8) lib/action_dispatch/middleware/remote_ip.rb:31:in
call' actionpack (3.2.8)
lib/action_dispatch/middleware/debug_exceptions.rb:16:in call'
actionpack (3.2.8)
lib/action_dispatch/middleware/show_exceptions.rb:56:in
call'
railties (3.2.8) lib/rails/rack/logger.rb:26:in call_app' railties
(3.2.8) lib/rails/rack/logger.rb:16:in
call' actionpack (3.2.8)
lib/action_dispatch/middleware/request_id.rb:22:in call' rack (1.4.1)
lib/rack/methodoverride.rb:21:in
call' rack (1.4.1)
lib/rack/runtime.rb:17:in call' activesupport (3.2.8)
lib/active_support/cache/strategy/local_cache.rb:72:in
call' rack
(1.4.1) lib/rack/lock.rb:15:in call' actionpack (3.2.8)
lib/action_dispatch/middleware/static.rb:62:in
call' railties (3.2.8)
lib/rails/engine.rb:479:in call' railties (3.2.8)
lib/rails/application.rb:223:in
call' rack (1.4.1)
lib/rack/content_length.rb:14:in call' railties (3.2.8)
lib/rails/rack/log_tailer.rb:17:in
call' rack (1.4.1)
lib/rack/handler/webrick.rb:59:in service'
/home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in
service'
/home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in
run'
/home/jashwant/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in
block in start_thread'

我现在不使用数据库。 我试图做rake db:migrate但它返回相同的错误。

我在Ubuntu 12.04上(因为google上的一些bug与ubuntu有关)

我在SO上发现了类似的问题,但是他们正在经历一些提前阶段,因此涉及一些先进的解决方案。


虽然,我没有使用数据库,但在database.yml中指定配置中的端口解决了这个问题。 默认情况下,rails new --database=postgresql命令不会在其中放置port

这是我的配置。

1
2
3
4
5
6
7
8
9
development:
  adapter: postgresql
  encoding: unicode
  database: sample_app_development
  pool: 5  
  port: 5433
  username: myusername
  password: mypassword
  reconnect: true