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

问题描述:

我在我的本地服务器(Ubuntu)上安装了PostgreSQL,IP为192.168.1.10。现在,我试图从我的客户机(Ubuntu)访问数据库,IP地址为192.168.1.11,带有pgAdmin。无法使用pgAdmin连接PostgreSQL到远程数据库

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

+0

您是否收到错误消息?如果是这样,什么错误? – krishna 2009-08-17 12:17:18

+0

这不是一个真正的编程问题。虽然,在data/pg_hba.conf中添加一行说“ ”host all all 192.168.1.0/24 md5“ – nos 2009-08-17 16:01:39

+0

你正在收到什么错误?你正在执行什么命令从不同的服务器连接到数据库?你想在postgresql.conf和pg_hba.conf中改变什么? – Space 2009-08-18 13:29:43

这实际上是一个通过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:

    主机的所有一切0.0.0.0/0 MD5放宽这些规则

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

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

+5

在ubuntu'sudo /etc/init.d/postgresql stop'和'sudo /etc/init.d/postgresql start'启动PostgresSQL服务器。我为此搜索了Google。因此,将此处添加到不知道重新启动服务的命令的人 – ganesshkumar 2015-02-04 23:03:46

+0

非常感谢!我一直在寻找几个小时,而这个答案终于解决了PostgreSQL 9.5的问题。第二步尤其如此。 – Alexander 2016-01-24 21:15:06

+1

RedHat'/ var/lib/pgsql/9.4/data/pg_hba.conf' – 2016-09-05 15:07:37

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

尝试添加一行:

​​

它会告诉PostgreSQL的监听所有网络接口连接。

如果未明确设置,则此设置默认为localhost,这意味着它只接受来自同一台计算机的连接。

我没有改变我的prostgresql.conf文件,但我确实有做的基础上通过命令行进行连接和pgAdmin的不连接与AWS RDS我PSQL以下。

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

这也先后在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 = '*' 从 的listen_addresses = 'localhost' 的 和那么

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