postgresql 데이터베이스에 원격으로 액세스

postgresql 데이터베이스에 원격으로 액세스

12.10 및 postgresql 9.1을 실행하는 DigitalOcean의 VPS에 있는 원격 시스템에서 postgresql 데이터베이스에 액세스해야 합니다.

어떻게 해야 하나요? 포트 5432가 닫혀 있는 것을 발견했습니다. 어떻게 열 수 있나요?

답변1

포트 5432를 열려면 다음을 편집 /etc/postgresql/9.1/main/postgresql.conf하고 변경하세요.

listen_addresses='localhost'

에게

listen_addresses='*'

그리고 DBMS를 다시 시작하세요

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

이것이 기본 구성이라는 점은 말할 필요도 없습니다. 이제 방화벽을 수정하고 DBMS의 보안을 강화하는 방법을 생각해 보아야 합니다.

답변2

다음과 같은 경우에는 더 이상 작동하지 않습니다.

모두 호스트 * md5

이에 대한 올바른 가능한 줄은 다음과 같습니다.

모든 0.0.0.0/0 md5 #ipv4 범위 호스트

모두 호스트::0/0 md5 #ipv6 범위

모두 모두 호스트 md5 #all ip

원천

답변3

"서버가 수신하지 않음"이라는 메시지의 경우, 내가 postgresql.conf 아카이브에서 #을 지우지 않았다는 의미는 다음과 같습니다.

#listen_addresses='localhost'

에게:

Listen_addresses='*'

(내 영어로 죄송합니다).

답변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

관련 정보