Назад | Перейти на главную страницу

Время ожидания подключения к Postgresql истекло

когда я подключаюсь к psql на удаленном сервере

>psql -h {hostname}
psql: could not connect to server: Connection timed out (0x0000274C/10060). Is the server running on host "{hostname}" (194.58.98.133) and accepting TCP/IP connections on port 5432?

На сервере:

netstat -nlp | grep 5432
tcp   0 0 0.0.0.0:5432   0.0.0.0:*  LISTEN  29609/postmaster
tcp        0      0 :::5432  :::*  LISTEN      29609/postmaster
unix  2   [ ACC ]  STREAM   LISTENING 2107633273 29609/postmaster   /tmp/.s.PGSQL.5432

на сервере нет iptables. Проверка связи с сервером прошла успешно.

Что я делаю не так?

Я получал такую ​​ошибку, когда мой pg_hba.conf или группы безопасности AWS настроены неправильно. Существует множество документов о том, как решить эту проблему. Например, вы можете проверить приведенную ниже цитату из этого ссылка на сайт

Ошибка: psql: не удалось подключиться к серверу: в соединении отказано. Сервер работает на хосте "192.168.0.1" и принимает соединения TCP / IP на порту 5432?

Общая причина: Процесс постмастера или сервера PostgreSQL не запущен или настроен неправильно.

Когда вы получаете эту ошибку в большинстве случаев, это связано с тем, что PostgreSQL не настроен для разрешения TCP / IP-соединений или, по крайней мере, не подключения с вашей конкретной рабочей станции. Если вы подтвердили, что postmaster действительно работает на хосте, к которому вы пытаетесь подключиться, то вот список распространенных причин этой проблемы:

  • postgresql.conf не настроен для разрешения TCP / IP-соединений. Вы захотите посмотреть на listen_address параметр конфигурации.
  • postgresql.conf не настроен для разрешения подключений через нестандартный номер порта. Чтобы определить это, посмотрите на port вариант конфигурации.
  • правила аутентификации в файле конфигурации доступа PostgreSQL (pg_hba.conf) не настроены так, чтобы разрешить подключение к этой базе данных ни вашим пользователям, ни IP-адресу. Видеть официальная документация для получения дополнительной информации о настройке вашего pg_hba.conf должным образом.
  • убедитесь, что нет брандмауэров, таких как iptables которые не позволяют вашей локальной системе даже установить соединение с удаленным хостом

Вы должны взглянуть на postgresql.conf. Чтобы разрешить соединения отовсюду, вы должны установить listen_adresses к *:

listen_addresses = '*'

в pg_hba.conf должна иметь такую ​​запись, чтобы разрешить подключение из вашей сети:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.190.0/24        md5