【问题标题】:Error connecting PostgreSQL remotely远程连接 PostgreSQL 时出错
【发布时间】:2012-07-24 17:59:31
【问题描述】:

我在尝试远程连接 PostgreSQL 数据库时遇到问题。我在本地 PC 上工作,我在服务器中有数据库。在服务器中,我同时配置了 pg_hba.conf 和 postgresql.conf。第一个文件如下所示:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             46.18.24.0/22           trust
host    all             all             193.106.180.0/22        trust
host    all             all             193.146.230.62/32       trust

第二个:

listen_addresses = '*'                  
port = 5432             
max_connections = 100

我确定服务器端打开了5432端口。

但是,当我尝试通过 pgAdmin III 从我的 PC (193.146.230.62) 连接时,我不能。可能是什么问题?

提前非常感谢您!

【问题讨论】:

  • 46.18.24.0/22,你确定是 22 吗?我希望这里有 24 个。并再次将“信任”更改为“md5”,如果没有正确的密码,您将不信任任何尝试。您是否在更改 postgresql.conf 后重新启动 PostgreSQL 并在更改后重新加载 pg_hba.conf?错误消息也很好,可以更轻松地为您提供帮助。
  • 嘿试试这个193.146.230.62 255.255.255.0而不是这个193.146.230.62/32
  • 我尝试了 193.146.230.62 255.255.255.0 和 193.146.230.62/32,但都无法连接
  • 您应该在两者上都包含错误消息,包括您检查过和未找到错误消息的位置。
  • 这是怎么回事?你似乎已经放弃了这个问题。

标签: database postgresql postgresql-9.1 pgadmin


【解决方案1】:

详细请看PostgreSQL的日志,可能你应该设置参数log_connections=on 和 $PGDATA/postgresql.conf 文件的 log_disconnections=on

顺便说一下,我建议你使用md5认证方式,而不是trust。

【讨论】:

    【解决方案2】:

    按照 PresleyDias 的建议,尝试将 listen_addresses 更改为您服务器的本地 IP,并在 pg_hba.conf 中指定 /24 掩码。

    【讨论】:

      【解决方案3】:

      服务器上是否有防火墙,或者 PC 上是否有第三方插件防火墙?

      如果服务器是 Linux,请检查 sudo iptables -L 并查看那里是否有任何东西。默认的无防火墙配置是:

      Chain INPUT (policy ACCEPT) target     
      prot opt source               destination         
      
      Chain FORWARD (policy ACCEPT) target     
      prot opt source               destination         
      
      Chain OUTPUT (policy ACCEPT) target     
      prot opt source               destination
      

      在 Windows 服务器上,检查 Windows 防火墙以确保允许 postgres.exe 侦听和/或端口已打开。

      在 Windows 客户端上,检查是否安装了第 3 方“互联网安全”或防火墙程序。如果只有 Windows 防火墙在那里就可以了,那不会是问题。不过,一些第 3 方防火墙会阻止 传出 连接,这可能是问题的根源。

      检查您是否可以ping 服务器。

      如果这没有帮助,请编辑您的问题以添加您收到的错误消息的确切字词以及您连接的方式说明(psql、 PgAdmin-III、JDBC 等等)。

      连接正常后,确保将trust 改回md5 并设置用户密码。以trust 模式运行几乎是在说“嘿,任何可以进入我网络的人,如果你愿意,可以来窃取或破坏我的数据”。

      【讨论】:

        【解决方案4】:

        如何尝试更改 pg_hba.conf。 只需将 127.0.0.1/32 更改为 0.0.0.0/0

        # IPv4 local connections:
        host    all             all             0.0.0.0/0               md5
        host    all             all             46.18.24.0/22           trust
        host    all             all             193.106.180.0/22        trust
        host    all             all             193.146.230.62/32       trust
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-13
          • 1970-01-01
          • 2017-10-17
          • 2016-01-04
          • 1970-01-01
          • 2013-06-02
          • 2018-10-07
          • 2021-11-09
          相关资源
          最近更新 更多