태그 보관물: vps

vps

postgresql 데이터베이스에 원격으로 액세스 원격 시스템에서 postgresql 데이터베이스에 액세스해야합니다. 어떻게해야합니까?

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

어떻게해야합니까? 포트 5432가 닫히는 것을 알았습니다. 어떻게 열 수 있습니까?



답변

포트 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의 보안을 향상시키는 방법을 고려해야합니다.


답변

그것이 더 이상 작동하지 않으면 더 이상 작동하지 않습니다.

모든 호스트 * md5

이에 대한 올바른 행은 다음과 같습니다.

모든 0.0.0.0/0 md5 # ipv4 범위를 모두 호스팅

모두 호스트 :: 0/0 md5 # ipv6 range

모든 호스트 모두 md5 #all 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
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com

(구성에 맞게 로컬 및 외부 포트를 변경하십시오).

그런 다음 로컬 컴퓨터에서 데이터베이스에 직접 연결할 수 있습니다.

psql -U db_user -p local_port -l


답변