pgAdmin3 проблемы с подключением

Недавно я установил и запустил сервер Windows 2008 r2 с VMware Workstation 8.

Я использую виртуальный Linux-сервер Centos 6.2 с Postgresql 9.1. Локально все в порядке, и я могу подключиться к CentOS через мостовое сетевое соединение.

Я выполнил руководство Дэвида Гедини по настройке Postgresql 9.1. Итак, я могу запустить окно сеанса шпатлевки, войти в систему как root, запустить оболочку psql и выдать операторы как пользователь postgres. Моя проблема в том, что я не могу подключиться с помощью pgAdmin III из моего клиента Windows 7. Я обновил /var/lib/pgsql/9.1/data/postgresql.conf, чтобы включить listen_addresses '*' и т. Д.

Может ли кто-нибудь дать мне совет, как найти свою вину. Убедитесь, что брандмауэр Windows отключен и на сервере Windows.

Отчеты клиента pgAdmin III;

"Сервер не слушает"

Сервер не принимает соединения: сообщает библиотека соединений

не удалось подключиться к серверу: время ожидания подключения истекло (0x0000274C / 10060). Сервер работает на хосте «192.168.1.26» и принимает соединения TCP / IP на порту 5432?

Это добавленная запись файла pg_hba.conf:

#TYPE DATABASE   USER   ADDRESS          METHOD
host  all        all    192.168.1.0/24   trust

И добавлены записи файла iptables:

-A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 192.168.1.26 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -s 192.168.1.26 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

person Jez    schedule 23.06.2012    source источник
comment
вы перезапустили службу postgresql после обновления файла conf? кроме того, pg_hba.conf может вызывать у вас проблемы. вот копия, которую я использую для своего экземпляра postgres для разработчиков. он чрезвычайно разрешен, но должен работать на вас.   -  person swasheck    schedule 23.06.2012
comment
за исключением этого, опубликуйте сообщение об ошибке, выданное pgAdminIII   -  person swasheck    schedule 23.06.2012
comment
Ммм ... черт, я был уверен, что это должна быть запись pg_hba.conf host. Я проследил за вашим синатаксом и добавил хост, все все доверительные записи, перезагрузил файл conf, но по-прежнему получаю сообщение «Сервер не слушает». Ожидание подключения начинает меня преследовать!   -  person Jez    schedule 23.06.2012
comment
D'OH! Тогда проблема скорее всего решена во второй ссылке AndrewSmith. Проверьте IPTables / брандмауэр на виртуальной машине   -  person swasheck    schedule 23.06.2012
comment
@MaRK Я думаю, что могу оказаться в такой же ситуации. На моем клиенте Windows, размещенном в VMware, я не могу подключиться к PG через локальный хост, размещенный на моем Mac. Я сделал все, что вы указали в вашем вопросе / ответе. Но мне было любопытно, как вы на самом деле тестируете PG-соединение из Windows. Установлен ли PG на ваших клиентах Windows и Mac?   -  person Trip    schedule 11.07.2014
comment
@Trip - Моя установка - это физический клиент Windows 7, работающий под управлением pgAdmin, который подключается к серверу Centos, размещенному в VMware, работающему на сервере Windows 2008 R2. Здесь нет Mac!   -  person Jez    schedule 16.07.2014
comment
Возможно ли, что доступ к одной базе данных может быть разрешен для определенного IP-адреса, но доступ к другой базе данных на том же сервере postgres будет запрещен для того же IP-адреса? Я столкнулся с таким сценарием. Ошибка, показанная в этом вопросе - я вижу, что только для одного db на сервере postgres, но я могу получить доступ к другому db на том же сервере postgres с моей машины.   -  person m.beginner    schedule 22.05.2019


Ответы (8)


Вам необходимо настроить pg_hba.conf:

http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

После того, как вы добавите свой собственный хост и соответствующего пользователя, перезапустите сервер postgresql, чтобы вы могли подключиться.

Также вам может потребоваться включить его порт в сети: http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html

person Andrew    schedule 23.06.2012
comment
Если бы это был файл pg_hba.conf, я думаю, пользователь получил бы другое сообщение об ошибке. - person kgrittn; 24.06.2012
comment
Эндрю, я следовал инструкциям по двум предоставленным ссылкам и обновил OP, чтобы показать эти записи. Я думал, что записи iptables предоставят решение, но, к сожалению, я все еще не могу подключиться к pgAdmin III и получить ту же ошибку. - person Jez; 24.06.2012
comment
Хорошо, теперь я подключен! Уууу! Отличный материал. Я перезапустил службу и смог подключиться. Большое спасибо, я уверен, что единственная выдающаяся вещь - это конфигурация iptables. В любом случае, большое спасибо. - person Jez; 24.06.2012

У меня точно такая же проблема. Я отключил все свои сторонние антивирусы и брандмауэры и снова переустановил PostgreSQL, и теперь он работает нормально ... :)

person jeswin    schedule 04.10.2014

Убедитесь, что сервер PostgreSQL разрешен через брандмауэр:

На сервере перейдите в

Панель управления> Система и безопасность> Брандмауэр Windows> Разрешить приложение через брандмауэр Windows

Прокрутите список «Разрешенные приложения и функции» и убедитесь, что установлен флажок «Сервер PostgreSQL».

person Bugalugs Nash    schedule 24.08.2015
comment
это было на centos - person Snow Bases; 25.07.2018

Вероятно, проблема с брандмауэром, проверьте это

systemctl status firewalld.service

вы можете просто отключить его:

systemctl stop firewalld.service
systemctl disable firewalld.service
person Lei Chi    schedule 20.09.2018

Сервер работает на хосте «192.168.1.26» и принимает соединения TCP / IP на порту 5432?

Убедитесь, что у сервера есть этот IP-адрес. Убедитесь, что запущены postgres процессы. Используйте netstat, чтобы убедиться, что сервер прослушивает порт 5432.

person kgrittn    schedule 24.06.2012
comment
Да, сервер определенно находится на этом IP-адресе, так как я могу подключиться к нему по ssh и войти в систему. Как было заявлено изначально, я также подтвердил, что postgres запускается путем выполнения команд в оболочке psql от имени пользователя postgres. Интересно, что когда я запускаю команду netstat, я не вижу упоминания о порту 5432. - person Jez; 24.06.2012
comment
Войдите в систему с помощью psql и введите show port; и show listen_addresses;. Возможно, что-то изменило настройки, которые, как вы думаете, вы используете, или вам нужно перезагрузить сервер. Кроме того, есть ли вероятность, что виртуальная машина реализует какой-то брандмауэр? - person kgrittn; 24.06.2012

Добавляя к приведенным выше отличным ответам, после реализации всех правил брандмауэра и изменений файла конфигурации он все еще не подключается к IP-адресу моего хоста. Затем я понял, что установил pgadmin локально на хосте, на котором была установлена ​​моя база данных postgres. Мне не нужно было использовать внешний IP-адрес для хоста, мне просто нужно было подключиться к localhost в процессе подключения pgadmin. Крайне неприятно, но имеет смысл. Итак, если вы

  • разместить pgadmin с того же сервера, что и ваша база данных postgres
  • исключили, что брандмауэр вам не мешает
  • исключили, что никакие группы безопасности вас не блокируют
  • достаточно повозились с вашими конфигурационными файлами pg_hba.conf и postgresql.conf

тогда, может быть ... просто, может быть, попробуйте подключиться к localhost или 127.0.0.1.

стоит попробовать!

person texasdave    schedule 26.06.2020

У меня была такая же проблема:

не удалось подключиться к серверу: время ожидания соединения истекло (0x0000274C / 10060). Сервер работает на хосте 192.168.1.26 и принимает соединения TCP / IP на порту 5432?

Возможно, вам нужно внести свой обратный IP-адрес в белый список:
26.1.168.192

person igorkf    schedule 12.08.2020

Вы также должны разрешить порт 5432 на брандмауэре.

пример на centos 8:

sudo firewall-cmd --zone = public --add-port = 5432 / tcp --permanent
person Yustinus Letsoin Rumabar    schedule 04.09.2020