我已全新安装 Windows 10 Pro x64,并尝试在其上运行 PostgreSQL 服务器。它以前在 Windows 7 上运行良好,但 Windows 10 的行为非常奇怪:如果我配置 PostgreSQL 进行监听,127.0.0.1
则无法使用 psql 连接到它:
psql: could not connect to server: Permission denied (0x0000271D/10013)
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
但如果我将其改为监听 192.168.0.108(我的内联网 IP),那么一切就正常了:
>psql.exe --host=192.168.0.108 --username=test test
psql (9.4.0)
如果我告诉它监听localhost
作为名称而不是IP,则行为是相同的(意味着PostgreSQL工作正常),尽管在两种情况下(localhost
或127.0.0.1
)它都完全监听相同的IP和端口:
>netstat -abno | grep 5432 -A 1
TCP 127.0.0.1:5432 0.0.0.0:0 LISTENING 3480
[postgres.exe]
--
TCP [::1]:5432 [::]:0 LISTENING 3480
[postgres.exe]
我的 中没有任何内容C:\Windows\System32\drivers\etc\hosts
。我不认为该问题特定于 PostgreSQL,我只是将其用作示例。我在本地运行的其他服务也存在同样的问题 - 由于权限错误而无法连接到本地套接字。