【问题标题】:pgAdmin III: Access to database deniedpgAdmin III:拒绝访问数据库
【发布时间】:2014-04-17 08:58:12
【问题描述】:

我正在尝试从pgAdmin III 连接到远程数据库。我创建了一个“新服务器注册”。当我连接到数据库时,我得到“拒绝访问数据库”。

我设置正确。这些是我的 PostgreSQL 设置:

  • pg_hba.conf >

PostgreSQL 客户端认证配置文件

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             postgres                                trust
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    all             all             192.168.0.0/16          md5
  • postgresql.conf > 我允许所有传入连接listen_addresses = '*'

使用 SSH 我可以连接到数据库:

[fuiba@test]$ psql -h localhost -p 26888 -d postgres
psql (9.1.11)
Type "help" for help.

postgres=# \l
                             List of databases
     Name     |  Owner  | Encoding | Collate | Ctype |  Access privileges  
--------------+---------+----------+---------+-------+---------------------
 postgres     |  fuiba  | UTF8     | C       | C     | 
 template0    |  fuiba  | UTF8     | C       | C     | =c/fuiba         +
              |         |          |         |       | fuiba=CTc/fuiba
 template1    |  fuiba  | UTF8     | C       | C     | =c/fuiba         +
              |         |          |         |       | fuiba=CTc/fuiba
(3 rows)

我做错了什么?任何帮助将不胜感激。谢谢!

ps:我在 Windows 7 上运行 pgAdmin III,在 Linux CentOS 上运行 PostgreSQL。

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    pgAdmin 从另一个主机连接到 PostgreSQL,而不是当您通过 SSH 登录到数据库服务器时。错误消息中提到的 IP 地址(以 93.39 开头)在您的pg_hba.conf 中没有提及。

    将运行 pgAdmin 的主机的公共 IP 地址(以 93.39 开头的地址)添加到 pg_hba.conf 或通过 SSH 隧道连接。修改pg_hba.conf后介意重新加载PostgreSQL的配置或者重启PostgreSQL。

    【讨论】:

    • 我尝试添加 IP 93.39.12.345 但不起作用。我重新启动了 Postgres,我得到了psql: could not connect to server: Connection refused ..。可能我需要将我的 IP 更改为 93.39.12.345/32 或 93.39.12.345/16 ?
    • 引用 PostgreSQL 的优秀文档:“以这种方式指定的 IP 地址范围的典型示例是 172.20.143.89/32 用于单个主机,或 172.20.143.0/24 用于小型网络,或 10.6。 0.0/16 更大的。 0.0.0.0/0 代表所有 IPv4 地址, ::/0 代表所有 IPv6 地址。”。它在postgresql.org/docs/9.3/static/auth-pg-hba-conf.html 的页面末尾有一个详尽的示例
    • 非常感谢@Augustus
    • 你如何解决这个问题?? @Fuiba
    【解决方案2】:

    我曾经为此苦苦挣扎,它通过更改 pg_hba.conf 中条目的 IP 掩码来工作,但我不太记得了,而且每个网络的配置都不同。关键是您很可能在其中一个条目中有错误。 Here,他们甚至指出错误消息是对is wrong 的哪个条目的提示。如果它们确实正确,我会检查auth-method(例如,查看我的密码是否作为 MD5 散列传递)。

    希望对你有帮助=)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多