Подтвердить что ты не робот

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

Я был бы очень признателен, если кто-нибудь, пожалуйста, будьте настолько любезны, чтобы объяснить, что здесь происходит и как его исправить.

4b9b3361

Ответ 1

Ошибка, которую вы указываете, не имеет ничего общего с pg_hba.conf; он не может подключиться, не получив разрешения на подключение.

Сделайте сообщение об ошибке:

Проверьте правильность имени и порта хоста и что почтовый мастер принимает соединения TCP/IP

Вы не указали команду, которая вызывает ошибку. Предполагая, что вы подключаетесь к порту localhost 5432 (по умолчанию для стандартной установки PostgreSQL), либо:

  • PostgreSQL не работает

  • PostgreSQL не прослушивает соединения TCP/IP (listen_addresses in 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?