когда я подключаюсь к 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