I need to access a postgresql database from a remote machine on a VPS at DigitalOcean running 12.10 and postgresql 9.1.
Как мне это сделать? Я заметил, что порт 5432 закрыт, как мне его открыть?
I need to access a postgresql database from a remote machine on a VPS at DigitalOcean running 12.10 and postgresql 9.1.
Как мне это сделать? Я заметил, что порт 5432 закрыт, как мне его открыть?
Чтобы открыть порт 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Мне не нужно упоминать, что это базовая конфигурация, теперь вам следует подумать об изменении вашего брандмауэра и повышении безопасности вашей СУБД.
Это больше не работает, если вообще когда-либо работало :
хост все все * md5
Правильными возможными строками для этого являются :
хост все все 0.0.0.0/0 md5 #диапазон ipv4
хост все все ::0/0 md5 #диапазон ipv6
хост все все все md5 #все ip
Для сообщения "сервер не прослушивает", которое случилось со мной, было то, что я не стираю # в архиве postgresql.conf, я имею в виду:
#listen_addresses='localhost'
к:
listen_addresses='*'
(Извините за мой английский).
Наиболее проголосовавший и принятый ответ имеет серьезные нарушения безопасности. Этот метод по умолчанию отключен по уважительным причинам.
Лучше использовать локальную переадресацию портов с ssh:
ssh -L local_port:localhost:foreign_port user@serverЗапустите переадресацию портов:
ssh -L 5432:localhost:5432 user@your-server.com#orssh -L 5432:127.0.0.1:5432 user@your-server.com(Измените локальные и внешние порты в соответствии с вашей конфигурацией).
Затем вы можете напрямую подключиться к базе данных со своего локального компьютера:
psql -U db_user -p local_port -l
После настройки вам необходимо установить:
В /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
Чтобы открыть ваш порт 5432, вам необходимо выполнить эту команду
sudo ufw allow 5432/tcp
Выполните действия, указанные в How to enable or allow remote access to PostgreSQL database server. | JavaByPatel: Data structures and algorithms interview questions in Java и измените номер порта, присутствующий в файле postgresql.conf. после смены порта перезапустите сервер PostgreSQL.
Url, опубликованный @Jayesh, сделал свое дело. Последовал инструкциям и успешно подключил один из моих компьютеров разработки к другому (от Windows с pgAdmin4 до Ubuntu 18.04 postgresql 10.9)