无法使用pgAdmin将PostgreSQL连接到远程数据库

我在我的本地服务器(Ubuntu)上安装了PostgreSQL,IP为192.168.1.10。 现在,我试图从我的客户机(Ubuntu)访问数据库与IP地址192.168.1.11与pgAdmin。

我知道我必须在postgresql.conf和pg_hba.conf中进行更改以允许客户端进行连接。 你能指导我吗?

这实际上是通过pgAdmin3远程连接到PostgreSQL服务器的3个步骤。

注意:我使用Ubuntu 11.04和PostgreSQL 8.4。

  1. 您必须使PostgreSQL侦听远程传入TCP连接,因为默认设置允许仅侦听回送接口上的连接。 为了能够远程访问服务器,必须将以下行添加到文件/etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses ='*'

  2. PostgreSQL默认拒绝从远程地址接收到的所有连接,你必须通过在/etc/postgresql/8.4/main/pg_hba.conf:添加这一行来放宽这些规则/etc/postgresql/8.4/main/pg_hba.conf:

    主机全部全部为0.0.0.0/0 md5

    这是一个访问控制规则,允许任何人从任何地址login,如果他能提供一个有效的密码(md5关键字)。 您可以使用所需的networking/掩码而不是0.0.0.0/0。

  3. 当您将这些修改应用于您的configuration文件时,您需要重新启动PostgreSQL服务器。 现在可以使用用户名和密码远程login到您的服务器。

如果您使用PostgreSQL 8或更高版本,则可能需要修改/etc/postgresql/8.4/main/postgresql.conflisten_addresses设置。

尝试添加行:

 listen_addresses = * 

这将告诉PostgreSQL监听所有networking接口上的连接。

如果没有明确设置,这个设置默认为localhost ,这意味着它只接受来自同一台机器的连接。

我没有改变我的prostgresql.conf文件,但是,我不得不通过命令行执行以下基于我的psql连接和pgAdmin不连接RDS与AWS上。

我确实已将我的RDS设置为公开访问。 我确定我的ACL和安全组是开放的,仍然是问题所以,我做了以下: sudo find . -name *.conf sudo find . -name *.conf然后sudo nano ./data/pg_hba.conf然后添加到pg_hba.conf文件host all all 0.0.0.0/0 md5的指令顶部host all all 0.0.0.0/0 md5和pgAdmin自动login我。

这也工作在pg_hba.conf文件host all all md5没有任何IP地址,这也与我的IP地址host all all <myip>/32 md5

作为一个方面说明,我的RDS是在我的默认VPC。 在我的非默认VPC中,我有一个相同的RDS实例,具有与默认VPC相同的安全组,ACL和安全组设置,我无法使其工作。 不知道为什么,但那是另一天。

对于redhat linux

 sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9是安装postgres版本的文件夹,可能与其他版本不同

从listen_addresses ='localhost'更改了listen_addresses ='*',然后

 sudo /etc/init.d/postgresql stop sudo /etc/init.d/postgresql start