У меня чистая установка 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)
Такое же поведение (что означает, что PostgreSQL работает нормально), если я скажу ему слушать localhost
как имя вместо IP, хотя в обоих случаях (либо 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, я просто использовал ее в качестве примера. У меня есть другие службы, работающие локально, которые имеют ту же проблему - не могу подключиться к локальному сокету из-за ошибки разрешений.