Rails无法建立Postgres连接

时间:2012-05-11 09:00:59

标签: ruby-on-rails postgresql

我正在尝试使用此配置运行以前正在运行的Rails 3应用程序:

development:
  adapter: postgres-pr
  #encoding: utf-8
  host: localhost
  port: 5432
  database: name
  username: user-name
  password: user-password
  #pool: 5
  #timeout: 5000
  #reconnect: true

这是我第一次使用Postgres,所以我的配置可能会关闭。但PGAdmin可以工作。

pg_hba.conf具有以下内容:

local   all             postgres                                peer

local   all             user-name                               password
host    all             user-name       127.0.0.1/32            password
host    all             user-name       ::1/128                 password

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

(我尝试了其他配置,似乎没有改变的东西)。

每当我尝试加载任何页面时,我都会收到错误ActiveRecord::ConnectionNotEstablished。网络跟踪显示以下内容:

socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 9
setsockopt(9, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(9, {sa_family=AF_INET, sin_port=htons(3000), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
listen(9, 100)                          = 0
accept(9, {sa_family=AF_INET, sin_port=htons(50500), sin_addr=inet_addr("127.0.0.1")}, [16]) = 10
setsockopt(10, SOL_TCP, TCP_NODELAY, [1], 4) = 0
accept(9, 0xbf937aec, [16])             = -1 EAGAIN (Resource temporarily unavailable)
getpeername(10, {sa_family=AF_INET, sin_port=htons(50500), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0

network,open trace也没有端口5432。

我看不到我想要的端口,我是以错误的方式设置的吗?还有什么可能是问题?

1 个答案:

答案 0 :(得分:2)

这是我的' database.yml',没有使用'端口'可能它可能暗示你朝着正确的方向发展:

# PostgreSQL. Versions 7.4 and 8.x are supported.
#
# Install the pg driver:
#   gem install pg
# On Mac OS X with macports:
#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
#   gem install pg
#       Choose the win32 build.
#       Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
development:
  adapter: postgresql
  encoding: unicode
  database: name
  pool: 5
  username: name
  password: 

  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # The server defaults to notice.
  #min_messages: warning

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test: &test
  adapter: postgresql
  encoding: unicode
  database: name
  pool: 5
  username: name
  password: 
  min_messages: warning

production:
  adapter: postgresql
  encoding: unicode
  database: name
  pool: 5
  username: name
  password:

cucumber:
  <<: *test