我现在真的在挣扎于Postgres9.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拜托,有人能告诉我我该怎么做吗?
发布于 2017-12-18 12:52:59
这就是我的设置:
# 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而不输入密码,它就会允许您进入。(假设您的设置已正确设置。)
https://stackoverflow.com/questions/47865556
复制相似问题