postgres - 在 IPV4 系统和 IPV6 系统之间共享相同的 pg_hba.conf

postgres - 在 IPV4 系统和 IPV6 系统之间共享相同的 pg_hba.conf

我正在尝试将 postgres 从一台机器打包到另一台机器。源是使用 IP V6 的 Windows 7,目标是使用 IPv4 的 Windows XP。

在 Windows XP 上启动 postgres 时出错

2010-11-01 12:01:07 IST LOG:  invalid IP address "::1": Unknown host
2010-11-01 12:01:07 IST CONTEXT:  line 76 of configuration file "C:/postgres/data/pg_hba.conf"
2010-11-01 12:01:07 IST FATAL:  could not load pg_hba.conf

-- postgres - 在 IpV4 系统和 IpV6 系统之间共享相同的 pg_hba.conf

以下是我的 pg_hba.conf 的样子

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

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

有没有办法使用对 ipv6 和 ipv4 通用的相同 pg_hba.conf?

答案1

如果没有针对本地情况修补 pg_hba.conf 文件的安装程序,这可能无法正常工作。您可以查找 initdb 在初始文件中创建的现有行,并在必要时修改这些行。如果系统不支持 IPv6,则 initdb 不会放入 IPv6 行。

在 PostgreSQL 9.1(尚未发布)中,您将能够将主机名放入 pg_hba.conf。因此,只需写入localhost即可在大多数目标系统上正常工作。

答案2

只需删除这一行:

host    all         all         ::1/128               trust

如果您使用的是仅 IPv4 的系统,则 IPv6 环回地址可能无法被识别。

答案3

该解决方案不起作用。尝试添加-h参数postmaster.opts。这将禁用 IPv6,然后它应该会重新开始工作。

相关内容