Удаленный доступ к базе данных postgresql

Удаленный доступ к базе данных postgresql

Мне нужно получить доступ к базе данных postgresql с удаленной машины на VPS в DigitalOcean, на которой запущены 12.10 и postgresql 9.1.

Как это сделать? Я заметил, что порт 5432 закрыт, как его открыть?

решение1

Чтобы открыть порт 5432 отредактируйте свой /etc/postgresql/9.1/main/postgresql.confи измените

listen_addresses='localhost'

к

listen_addresses='*'

и перезапустите вашу СУБД

invoke-rc.d postgresql restart

теперь вы можете связаться с

$ psql -h hostname -U username -d database

если вы не можете пройти аутентификацию, то вам необходимо предоставить своему пользователю права доступа к вашей базе данных

Редактировать ваш

/etc/postgresql/9.1/main/pg_hba.conf

и добавить

host all all all md5

(Это для широкого открытого доступа. Для более строгого контроля обратитесь кдокументация pg_hba.confи отрегулируйте в соответствии с вашими потребностями).

В дальнейшем вам также понадобится перезагрузка.

invoke-rc.d postgresql reload

Мне не нужно говорить, что это базовая конфигурация, теперь вам следует подумать об изменении вашего брандмауэра и повышении безопасности вашей СУБД.

решение2

Это больше не работает, если когда-то работало:

хост все все * md5

Правильные возможные строки для этого:

хост все все 0.0.0.0/0 md5 #ipv4 диапазон

хост все все ::0/0 md5 #ipv6 диапазон

хост все все все md5 #все ip

Источник

решение3

Для сообщения «сервер не слушает», которое произошло со мной, я имел в виду, что я не удалил # в архиве postgresql.conf:

#listen_addresses='localhost'

к:

прослушивать_адреса='*'

(Извините за мой английский).

решение4

После настройки вам необходимо установить:

В/etc/postgresql/10/main/postgresql.conf

# Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;

В/etc/postgresql/10/main/pg_hba.conf

# IPv4 local connections:
host    all             all             0.0.0.0/0           md5

Перезагрузите сервер:

sudo /etc/init.d/postgresql restart

Связанный контент