首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使具有“信任”设置,也无法连接到postgres数据库

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

Stack Overflow用户
提问于 2017-12-18 09:38:58
回答 1查看 2.6K关注 0票数 0

我现在真的在挣扎于Postgres9.1数据库,我需要它来测试我的软件。我没有创建这个数据库,但我以前使用postgres作为用户和密码登录。但是,现在,即使使用运行数据库的同一台机器上的pgadmin3,我也不可能创建连接。我在pg-hba.conf中尝试了一百万个组合,比如:

代码语言:javascript
复制
host    all             all             192.168.10.178/32         trust

代码语言:javascript
复制
host    all             all             0.0.0.0/0                 trust

代码语言:javascript
复制
host    example         postgres        192.168.10.178/32       trust

代码语言:javascript
复制
host    all             all             ::1/128                 md5

服务器的Ip4入口为192.168.10.178,子网掩码为255.255.245.0。这台机器运行的是windows server 2008,我是以管理员权限登录的(如果这很重要)。在postgresql.conf中,设置了以下行:

代码语言:javascript
复制
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”,它只会告诉我:

代码语言:javascript
复制
password-authentication for user 'postgres' failed

拜托,有人能告诉我我该怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-18 12:52:59

这就是我的设置:

代码语言:javascript
复制
# 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而不输入密码,它就会允许您进入。(假设您的设置已正确设置。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47865556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档