PostgreSQL: psql 명령을 사용하여 Postgres 인스턴스에 원격 연결
Postgres 인스턴스에 원격으로 연결하려고 합니다.호스트 이름을 전달하는 psql 명령을 사용하여 이 작업을 수행할 수 있습니다.
다음을 시도했습니다.
psql -U postgres -p 5432 -h hostname
기본적으로 원격 연결을 허용하도록 대상 시스템의 /etc/postgresql/9.3/main/pg_hba.conf 파일을 수정했습니다.
파일에 다음 줄을 추가했습니다.
host all all source_ip/32 trust
다음을 사용하여 클러스터를 다시 시작했습니다.
pg_ctlcluster 9.2 mycluster stop
pg_ctlcluster 9.2 mycluster start
그러나 source_ip에서 연결하려고 하면 여전히 오류가 발생합니다.
서버가 호스트 "에서 실행되고 포트 5432에서 TCP/IP 연결을 허용합니까?
내가 여기서 뭘 잘못하고 있는 거지?
다음 옵션을 사용하여 이 문제를 해결했습니다.
- 네트워크 팀에서 DB 호스트를 화이트리스트에 추가하여 원격 호스트에 액세스할 수 있는지 확인합니다.
- postgre 설치SQL 버전 4 이상
- 아래 명령어로 실행:
psql -h <REMOTE HOST> -p <REMOTE PORT> -U <DB_USER> <DB_NAME>
psql -h <IP_Address> -p <port_no> -d <database_name> -U <DB_username> -W
-W
옵션을 선택하면 암호를 묻는 메시지가 표시됩니다.예:
psql -h 192.168.1.50 -p 5432 -d testdb -U testuser -W
난 이해했다.
설정해야 함listen_addresses='*'
에postgresql.conf
모든 IP에서 들어오는 연결을 허용합니다.
아래의 단계 현명함
- 포트 열기 - 요구 사항에 따라 PSQL 포트가 특정 IP 집합의 모든 원격 연결 또는 연결에 열려 있는지 확인합니다. 일반적으로 PSQL은 포트 5432에서 실행되며 구성 가능하므로 관련 포트를 적절히 노출하십시오.
- 원격 서버 PSQL 구성 업데이트 - 설정
listen_addresses = '*'
에postgresql.conf
파일, 경로는 일반적으로/etc/postgresql/psql_version/main/postgresql.conf
- 원격 연결 -
psql -U <db_username> -h <IP_address>
psql이 원격 서버의 5432가 아닌 다른 포트에서 실행되는 경우 추가하여 포트를 지정합니다.-p <port_number>
아래의 약간의 플러스 - IP가 도메인 이름에 매핑된 경우, 대체하여 연결할 수 있습니다.<IP_address>
와 함께<host_name>
이렇게 하려면 새 연결 규칙을 추가합니다.pg_hba.conf
파일
참고 - 위에서 설명한 모든 것이 보안 문제를 일으킬 수 있습니다. 항상 psql 포트를 닫거나 IP 목록만 포트를 통해 연결하도록 허용하는 것이 가장 좋습니다.
pg_hba.conf의 "ident"를 사용하려면 클라이언트에서 "ident 서버"가 실행되어야 합니다.
언급URL : https://stackoverflow.com/questions/32824388/postgresql-remotely-connecting-to-postgres-instance-using-psql-command
'sourcetip' 카테고리의 다른 글
이 요청은 이 작업을 수행할 권한이 없습니다.애저블롭클라이언트 (0) | 2023.06.02 |
---|---|
(셸 종료 코드로) 파일이 추적되는지 여부를 확인하는 방법은 무엇입니까? (0) | 2023.06.02 |
UI 텍스트 필드를 편집할 때 키보드를 해제하는 방법 (0) | 2023.06.02 |
VB.NET의 배열에서 항목을 삭제하려면 어떻게 해야 합니까? (0) | 2023.06.02 |
Eclipse에서 열 선택 모드를 활성화하려면 어떻게 해야 합니까? (0) | 2023.06.02 |