我安装了PostgreSQL在我的本地服务器(Ubuntu)IP192.168.1.10.现在,我想访问的数据库从我的客户机(Ubuntu)IP192.168.1.11的与pgAdmin.

我知道我必须改变postgresql。conf和pg_hba.conf允许客户进行连接。能不能请你指导我?

有帮助吗?

解决方案

它实际上是一个3步骤的过程中连接到一个PostgreSQL server通过远程pgAdmin3.

注:我用Ubuntu的11.04和PostgreSQL8.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的/0md5

    这是一个接入控制规则,让任何人登录在任何地址,如果他可以提供一个有效的密码(md5关键词).你可以使用所需要的网络/模板,而不是0.0.0.0/0.

  3. 当你已经应用了这些修改结构的文件需要重新启动PostgreSQL server。现在它是可以登录到您的远程服务器,使用用户名和密码。

其他提示

如果您使用的PostgreSQL 8或更高,则可能需要修改listen_addresses/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具有相同安全组,ACL和安全组设置相同的RDS实例,以我的默认VPC,我无法得到它的工作。不知道为什么,但是,那是另一天。

在linux终端试试这个:

  • sudo service postgresql start :开始的服务器
  • sudo service postgresql stop :停止你的服务器
  • sudo service postgresql status :检查服务器的状态

有关RedHat Linux下

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

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

改变 的listen_addresses = '*' 从 的listen_addresses =“本地主机” 然后

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

检查你的防火墙。如果禁用它,那么你可以连接。如果你想/无法禁用防火墙,添加一个规则,为您的远程连接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top