我正在尝试将 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,然后它应该会重新开始工作。