Postgresql: соединение отказано. Убедитесь, что имя хоста и порт указаны правильно и что администратор почты принимает соединения TCP/IP
Я пытаюсь подключиться к postgresql, но получаю эту ошибку.
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Мой файл pg_hba.conf такой.
TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Я был бы очень признателен, если бы кто-нибудь был настолько любезен, чтобы объяснить, что здесь происходит и как мне это исправить.
1 ответ
Ошибка, которую вы цитируете, не имеет ничего общего с pg_hba.conf
; не удается подключиться, не удается авторизовать подключение.
Сделайте то, что говорит сообщение об ошибке:
Убедитесь, что имя хоста и порт указаны правильно и что администратор почты принимает соединения TCP/IP
Вы не показали команду, которая выдает ошибку. Предполагая, что вы подключаетесь к localhost
порт 5432
(по умолчанию для стандартной установки PostgreSQL), затем либо:
PostgreSQL не работает
PostgreSQL не прослушивает соединения TCP/IP (
listen_addresses
вpostgresql.conf
)PostgreSQL только слушает IPv4 (
0.0.0.0
или же127.0.0.1
) и вы подключаетесь по IPv6 (::1
) или наоборот. Это кажется проблемой для некоторых старых версий Mac OS X, которые имеют странное поведение сокетов IPv6, и для некоторых старых версий Windows.PostgreSQL прослушивает порт, отличный от того, к которому вы подключаетесь
(вряд ли) есть
iptables
правила блокировки петлевых соединений
(Если вы не подключаетесь к localhost
Это также может быть сетевой брандмауэр, который блокирует соединения TCP/IP, но я предполагаю, что вы используете значения по умолчанию, поскольку вы этого не сказали).
Итак... проверьте это:
ps -f -u postgres
должен перечислитьpostgres
процессыsudo lsof -n -u postgres |grep LISTEN
или жеsudo netstat -ltnp | grep postgres
должен показывать адреса TCP/IP и порты, которые прослушивает PostgreSQL
Кстати, я думаю, что вы должны быть на старой версии. На моей установке 9.3 ошибка более детальная:
$ psql -h localhost -p 12345
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 12345?