sourcetip

PostgreSQL: psql 명령을 사용하여 Postgres 인스턴스에 원격 연결

fileupload 2023. 6. 2. 21:16
반응형

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 연결을 허용합니까?

내가 여기서 뭘 잘못하고 있는 거지?

다음 옵션을 사용하여 이 문제를 해결했습니다.

  1. 네트워크 팀에서 DB 호스트를 화이트리스트에 추가하여 원격 호스트에 액세스할 수 있는지 확인합니다.
  2. postgre 설치SQL 버전 4 이상
  3. 아래 명령어로 실행:
    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에서 들어오는 연결을 허용합니다.

아래의 단계 현명함

  1. 포트 열기 - 요구 사항에 따라 PSQL 포트가 특정 IP 집합의 모든 원격 연결 또는 연결에 열려 있는지 확인합니다. 일반적으로 PSQL은 포트 5432에서 실행되며 구성 가능하므로 관련 포트를 적절히 노출하십시오.
  2. 원격 서버 PSQL 구성 업데이트 - 설정listen_addresses = '*'postgresql.conf파일, 경로는 일반적으로/etc/postgresql/psql_version/main/postgresql.conf
  3. 원격 연결 -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

반응형