PostgreSQL:无法连接到服务器:连接超时

时间:2015-05-14 09:40:01

标签: ruby-on-rails database postgresql cloud9-ide

我一直在尝试切换到PostgreSQL(来自SQLite)。我正在开发Cloud9环境。但是,在db迁移时,我收到错误消息

  

PG :: ConnectionBad:无法连接到服务器:连接超时。   服务器是否在主机“mydomain.c9.io”(IP地址)上运行   接受端口5432上的TCP / IP连接?

我一直在阅读有关此主题的各种先前提出的问题,但没有成功。有没有人看到可能出现的问题?

我是否需要更改 pg_hba.conf 文件?该文件的当前版本:

# Database administrative login by Unix domain socket
local   all             postgres                                peer
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer  
# IPv4 local connections:
host    all             all             xxx.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local  replication     postgres                                peer
#host   replication     postgres        xxx.0.0.1/32            md5
#host   replication     postgres        ::1/128                 md5

database.yml中:

default: &default
  adapter: postgresql
  encoding: unicode
  host: 'mydomain.c9.io'
  pool: 5
  username: my_username
  password: my_password
development:
  <<: *default
  database: app_development
test:
  <<: *default
  database: app_test
production:
  <<: *default
  database: app_production

我在 Gemfile 中有gem 'pg'并且已经运行bundle install。此外,我创建了数据库 app_development(使用sudo service postgresql startsudo sudo -u postgres psql然后create database "app_development";)以及数据库app_test。最后,我在psql中使用CREATE USER my_username SUPERUSER PASSWORD 'my_password';创建了一个新用户

使用sudo nano /etc/postgresql/9.3/main/postgresql.conf我也设置listen_addresses = '*',但这没有任何区别。

可能导致错误消息的原因是什么?

1 个答案:

答案 0 :(得分:0)

您确定您的云端9已打开postgres端口(5432)以进行访问吗?我假设云端9主机没有侦听端口5432.您可以查看此链接以了解详情

http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html