代码之家  ›  专栏  ›  技术社区  ›  vinayrks

无法使用pgadmin将postgresql连接到远程数据库

  •  49
  • vinayrks  · 技术社区  · 15 年前

    我在本地服务器(Ubuntu)上安装了PostgreSQL,其IP为192.168.1.10。现在,我正在尝试从我的客户机(Ubuntu)通过pgadmin访问IP 192.168.1.11的数据库。

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

    4 回复  |  直到 8 年前
        1
  •  105
  •   Syed Aslam    14 年前

    实际上,通过pgadmin3远程连接到PostgreSQL服务器是一个三步过程。

    注:我使用Ubuntu 11.04和PostgreSQL 8.4。

    1. 您必须让PostgreSQL侦听远程传入的TCP连接,因为默认设置只允许侦听环回接口上的连接。要远程访问服务器,必须在文件中添加以下行 /etc/postgresql/8.4/main/postgresql.conf:

      听“地址”='*'

    2. PostgreSQL默认拒绝它从任何远程地址接收的所有连接,您必须通过将此行添加到 /etc/postgresql/8.4/main/pg_hba.conf:

      全部托管0.0.0.0/0 MD5

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

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

        2
  •  8
  •   jwfearn    14 年前

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

    尝试添加行:

    listen_addresses = *
    

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

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

        3
  •  1
  •   max56    8 年前

    我不需要更改prostgresql.conf文件,但是,我必须根据我的psql通过命令行进行以下操作:连接,pgadmin不连接RDS和AWS。

    我的无线电数据系统设置为可公开访问。我确保我的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实例,其安全组、acl和安全组设置与我的默认vpc相同,我无法使其工作。不知道为什么,但是,那是为了另一天。

        4
  •  0
  •   Rujoota Shah    8 年前

    对于Redhat Linux

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

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

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

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