【问题标题】:Cannot connect to postgres database even with 'trust' settings即使使用“信任”设置也无法连接到 postgres 数据库
【发布时间】:2017-12-18 09:38:58
【问题描述】:

我目前正在为测试我的软件所需的 postgres 9.1 数据库而苦苦挣扎。我没有创建这个数据库,但我以前用 postgres 作为用户和密码登录。但是,现在我无法从运行数据库的同一台机器上创建连接,即使 pgadmin3 也是如此。我在 pg-hba.conf 中尝试了一百万种组合,例如:

host    all             all             192.168.10.178/32         trust

host    all             all             0.0.0.0/0                 trust

host    example         postgres        192.168.10.178/32       trust

host    all             all             ::1/128                 md5

服务器的IP4地址是192.168.10.178,子网掩码是255.255.245.0。这台机器正在运行 Windows Server 2008,我以管理员权限登录(如果这很重要)。在 postgresql.conf 中设置了以下几行:

listen_addresses = '*'      # what IP address(es) to listen on;
                    # comma-separated list of addresses;
                    # defaults to 'localhost', '*' = all
                    # (change requires restart)
port = 5432             # (change requires restart)

我对 postgres 一点也不熟悉,直到现在我读到的关于 pg_hba.conf 的内容并没有让我更进一步。我本来希望至少使用上面的第二个设置,它可以让我无需密码即可登录,而不关心用户或主机 IP。但不知何故,pgadmin 3 仍然要求用户“postgres”的密码,如果我使用“postgres”,它只会告诉我:

password-authentication for user 'postgres' failed

拜托,谁能告诉我到底该怎么办?

【问题讨论】:

  • 不仅仅是what你有hba文件,还有以什么顺序 - 请在pg_hba.conf上显示确切的内容
  • 另外,您在更改配置文件后是否运行pg_ctl reload

标签: postgresql pg-hba.conf


【解决方案1】:

这是我的设置的样子:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             nnn.nn.nnn.nnn/32       trust
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

(显然,n 是我从我的实际 IP 地址中隐藏的数字。)

正如@VaoTsun 所说,确保这些行按照您希望它们应用的顺序排列,因为第一个匹配的行将被使用。因此,例如,如果您将samenet 设置为md5,那么下一行您将samehost 设置为trust,您将获得md5,因为samenet 对您的连接有效。

但我强烈怀疑问题在于IPv6 连接条目要么被注释掉,要么被设置为md5(或两者兼而有之)。我不知道确切原因,但我知道在我们的许多 2008 服务器上,它将使用 IPv6 设置而不是 IPv4。也许这取决于机器上是否启用了 IPv6。根据我上面的设置设置该条目,我敢打赌会这样做。

此外,除非您已将 PGAdmin 配置为保存密码,否则即使 trust 已正确设置,它仍会要求您输入密码。无需输入密码直接按回车键,它应该允许您进入。(假设您的设置已正确设置。)

【讨论】:

  • 确实是缺少 IPv6 配置行。非常感谢。 :)
猜你喜欢
  • 1970-01-01
  • 2014-08-14
  • 2017-12-20
  • 2019-12-14
  • 1970-01-01
  • 2016-02-26
  • 2013-04-21
  • 2021-07-10
  • 2021-02-12
相关资源
最近更新 更多