pgAdmin 无法连接到 PostgreSQL 9.1

pgAdmin 无法连接到 PostgreSQL 9.1

我正在尝试使用 Windows 上的 pgAdmin 连接到postgresql在本地主机的 Ubuntu 12.04 VM 上运行的 9.1.8。主机的端口 5432 转发到 VM 的端口 5432。

pgAdmin 错误:

Error connecting to the server: could not receive data from server: Software caused connection abortion (0x00002745/10053)

PostgreSQL 配置文件

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'
port = 5432 

配置文件

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

host    all             all             0.0.0.0/0               md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5 

netstat -nlp | 5432

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      29035/postgres
unix  2      [ ACC ]     STREAM     LISTENING     50823    29035/postgres      /var/run/postgresql/.s.PGSQL.5432

iptables 规则

iptables -I INPUT -p tcp --dport 5432 -j ACCEPT

PostgreSQL 服务已重新启动,但 pgAdmin 仍然出现错误。您知道是什么原因造成的吗?

答案1

遇到了同样的问题,归结为 3 个步骤:

1- 在 Mavericks 上(10.6+ 版本也一样),端口 5432 已被占用,因此需要执行以下操作: --- config.vm.network“forwarded_port”,guest:5432,host:5433' 在“Vagrantfile”上,然后使用端口 5433 通过 pgadmin3 进行连接

2- listen_address = '*' # 在 postgresql.conf 中,允许服务器侦听来自所有 ip 的套接字连接

3-需要在‘pg_hba.conf’中启用主机

我把 vagrant 上 postgresql 所需的配置 shell 脚本放在这里:

https://gist.github.com/haknick/7394776

答案2

TCP 数据包被允许进入,但是它们是否被允许从虚拟机传出到主机?

如果需要 INPUT 规则,则可能也需要 OUTPUT 规则,例如:

iptables -I OUTPUT -p tcp --sport 5432 -m state --state ESTABLISHED -j ACCEPT

您也可以看看这个相关问题: 无法连接到 Vagrant Box 上的 Postgres - 连接被拒绝

相关内容