Невозможно подключить PostgreSQL к удаленной базе данных с помощью pgAdmin

Я установил PostgreSQL на свой локальный сервер (Ubuntu) с IP 192.168.1.10. Теперь я пытаюсь получить доступ к базе данных со своего клиентского компьютера (Ubuntu) с IP 192.168.1.11 с помощью pgAdmin.

Я знаю, что мне нужно внести изменения в postgresql.conf и pg_hba.conf, чтобы клиент мог подключиться. Не могли бы вы направить меня?


person vinayrks    schedule 17.08.2009    source источник
comment
Вы получаете сообщение об ошибке? если да, то какая ошибка?   -  person krishna    schedule 17.08.2009
comment
На самом деле это не вопрос программирования. Тем не менее, добавьте строку с сообщением host all all 192.168.1.0/24 md5 в data / pg_hba.conf   -  person nos    schedule 17.08.2009
comment
Какую ошибку вы получаете? Какую команду вы выполняете для подключения к базе данных с другого сервера? Что вы думаете изменить в postgresql.conf и pg_hba.conf?   -  person Space    schedule 18.08.2009
comment
С 10.1 + pgAdmin 4 под Windows 8.1 я удалил все (подкаталоги в c: \ program files \ postgresql \ и c: \ program files (x86) \ postgresql \ содержат деинсталляторы) и удалил оба каталога. Возобновился. Затем установил автономный pgAdmin 4. Это сработало! Никакие другие предложения в моем случае не помогли. Но это непрактично, поэтому я не могу оставить это в качестве ответа.   -  person TamusJRoyce    schedule 11.01.2018


Ответы (7)


На самом деле это трехэтапный процесс для удаленного подключения к серверу PostgreSQL через pgAdmin3.

Примечание: я использую Ubuntu 11.04 и PostgreSQL 8.4.

  1. Вы должны заставить PostgreSQL прослушивать удаленные входящие TCP-соединения, потому что настройки по умолчанию позволяют прослушивать только соединения на интерфейсе обратной связи. Чтобы иметь возможность подключиться к серверу удаленно, вы должны добавить следующую строку в файл /etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses = '*'

  2. PostgreSQL по умолчанию отклоняет все соединения, которые он получает с любого удаленного адреса, вы должны ослабить эти правила, добавив эту строку в /etc/postgresql/8.4/main/pg_hba.conf:

    разместить все все 0.0.0.0/0 md5

    Это правило контроля доступа, которое позволяет любому войти в систему с любого адреса, если он может предоставить действительный пароль (ключевое слово md5). Вы можете использовать необходимую сеть / маску вместо 0.0.0.0/0.

  3. После внесения этих изменений в файлы конфигурации вам необходимо перезапустить сервер PostgreSQL. Теперь можно удаленно войти на ваш сервер, используя имя пользователя и пароль.

person Syed Aslam    schedule 17.05.2011
comment
Для запуска сервера PostgresSQL в ubuntu sudo /etc/init.d/postgresql stop и sudo /etc/init.d/postgresql start. Я погуглил для этого. Поэтому добавьте его сюда для людей, которые не знают команду перезапуска службы. - person ganesshkumar; 05.02.2015
comment
В RedHat /var/lib/pgsql/9.4/data/pg_hba.conf - person Junior Mayhé; 05.09.2016
comment
Небольшое обновление. Вышеуказанный 0.0.0.0/0 md5 работает только для IPv4. Чтобы разрешить доступ для IPv6, добавьте также следующую строку: host all all ::0/0 md5 - person raschild; 14.09.2016
comment
И к настоящему времени вы, возможно, нашли, но все же в случае: sudo /etc/init.d/postgresql status, чтобы увидеть статус службы, которую вы запустили или остановили. - person Guru; 15.01.2018
comment
В Windows не забывайте о FIREWALL, отключите его или добавьте правило для postgres - person vehsakul; 20.02.2019

Если вы используете PostgreSQL 8 или выше, вам может потребоваться изменить параметр listen_addresses в /etc/postgresql/8.4/main/postgresql.conf.

Попробуйте добавить строку:

listen_addresses = *

который скажет PostgreSQL прослушивать соединения на всех сетевых интерфейсах.

Если не задан явно, этот параметр по умолчанию равен localhost, что означает, что он будет принимать соединения только с того же компьютера.

person jwfearn    schedule 05.10.2010

В терминале linux попробуйте следующее:

  • sudo service postgresql start: для запуска сервера
  • sudo service postgresql stop: чтобы остановить твой сервер
  • sudo service postgresql status: для проверки статуса сервера
person samen tanay singh    schedule 17.09.2019

Мне не нужно было изменять файл prostgresql.conf, но я должен был сделать следующее, основываясь на моем psql через командную строку, и pgAdmin не подключается к RDS с AWS.

У меня был RDS, настроенный на общедоступный. Я убедился, что мои ACL и группы безопасности широко открыты и все еще проблема, поэтому я сделал следующее: sudo find . -name *.conf затем sudo nano ./data/pg_hba.conf, затем добавил в начало директив в файле pg_hba.conf host all all 0.0.0.0/0 md5, и pgAdmin автоматически вошел в систему.

Это также работало в файле pg_hba.conf host all all md5 без какого-либо IP-адреса, и это также работало с моим IP-адресом host all all <myip>/32 md5

Кстати, мой RDS был в моем VPC по умолчанию. У меня был идентичный экземпляр RDS в моем VPC не по умолчанию с идентичными настройками группы безопасности, ACL и группы безопасности для моего VPC по умолчанию, и я не мог заставить его работать. Не уверен, почему, но это в другой день.

person max56    schedule 06.10.2016

Подключение к PostgreSQL через SSH-туннелирование

Если вы не хотите открывать порт 5432 для какого-либо трафика или не хотите настраивать PostgreSQL для прослушивания любого удаленного трафика, вы можете использовать SSH-туннелирование для удаленного подключения к экземпляру PostgreSQL. Вот как:

  1. Откройте PuTTY. Если у вас уже есть сеанс, настроенный для подключения к экземпляру EC2, загрузите его, но пока не подключайтесь к нему. Если у вас нет такого сеанса, посмотрите этот пост.
  2. Перейдите в раздел Подключение ›SSH› Туннели
  3. Введите 5433 в поле Source Port.
  4. Введите 127.0.0.1:5432 в поле «Назначение».
  5. Щелкните кнопку Добавить.
  6. Вернитесь к сеансу и сохраните сеанс, затем нажмите «Открыть» для подключения.
  7. Это открывает окно терминала. Как только вы подключитесь, вы можете оставить это в покое.
  8. Откройте pgAdmin и добавьте соединение.
  9. Введите localhost в поле Host и 5433 в поле Port. Укажите Имя для подключения, а также имя пользователя и пароль. По завершении нажмите ОК.
person Saravanan Nandhan    schedule 29.05.2020

Для redhat linux

sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9 - это папка для установленной версии postgres, для других может отличаться

изменил listen_addresses = '*' с listen_addresses = ‘localhost’, а затем

sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql start
person Rujoota Shah    schedule 06.12.2016

Проверьте свой брандмауэр. Когда вы его отключите, то сможете подключиться. Если вы хотите / не можете отключить брандмауэр, добавьте правило для удаленного подключения.

person Community    schedule 24.04.2019
comment
Не могли бы вы подробнее рассказать о правилах, которые будут добавлены? - person Chintan Pathak; 22.09.2019