PostgreSQL pg_hba.conf问题

时间:2011-07-10 18:33:01

标签: postgresql pgadmin

在pg_hba.conf中,我有

host    all             all             127.0.0.1/32            md5
host    all             all             samenet            md5

我还添加了

host    all             all             samehost            md5

两者。

我正在使用pgAdminIII,尝试创建“新服务器注册”。当我连接到(localhost)时,它工作正常。但是,当我将主机更改为实际的工作站名称时,它会说:

FATAL: no pg_hba.conf entry for host "fe80::c81c:9e9c:6570:d0bf%20", user "postgres", database "postgres", SSL off 

其他信息

  • 操作系统:Windows 7旗舰版32位
  • PostgreSQL Server 9.0.2

对此的任何帮助都将受到高度赞赏。

6 个答案:

答案 0 :(得分:6)

这是在启用了IPv6的Windows计算机上安装PostgreSQL的问题。临时解决方法将通过参数“-h 127.0.01”,如本文所述。

http://postgresql.1045698.n5.nabble.com/FATAL-no-pg-hba-conf-entry-for-host-1-td1873063.html

答案 1 :(得分:4)

其他用户在这里已经回答了这个问题,但是我想在这里给出答案,以便为其他人做出更明确的说明:

在pg_hba.conf中,添加你的ipv6地址:

host      all        all       fe80::c81c:9e9c:6570:d0bf/128       md5

fe80 :: c81c:9e9c:6570:d0bf是你的ipv6地址。

答案 2 :(得分:3)

请注意,samehostsamenet依赖的接口枚举代码与平台有很大关系。 (对于不同的平台,目前有5个单独的实现。)因此,对于一个设置有效的方法可能在其他地方不起作用。

也就是说,类似的设置在Linux上适用于我,也就是说,我可以使用

连接到本地主机上的数据库服务器
psql -d postgres -h 'fe80::xxxx:xxxx:xxxx:xxxx%eth0'
正确设置listening_addressessamenet之后

因此,可以想象Windows中的接口枚举代码无法包含链接本地地址。

如果你已经完全解决了这个问题,我会向PostgreSQL发送一个错误报告来进一步分析这个问题。

答案 3 :(得分:1)

我遇到了同样的问题并通过关闭两台机器上的ipv6支持解决了这个问题。不确定这是否适合您。

答案 4 :(得分:1)

您也可以使用

host      all        all       ::1/128       md5

表示localhost。

答案 5 :(得分:0)

关闭适配器上的IPV6。 之后,做

netsh interface teredo set state disabled

这将禁用您无法从GUI看到的虚拟网络接口。