即使使用“信任”设置,也无法连接到postgres数据库

问题描述 投票:0回答:1

我目前正在努力使用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

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

postgresql pg-hba.conf
1个回答
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,它仍会要求您输入密码。只需按Enter键而不输入密码,它应该允许你进入。(假设您的设置已正确设置。)

© www.soinside.com 2019 - 2024. All rights reserved.