728x90
Windows PostgreSQL서버 외부에서 접속 허용하기
PostgreSQL서버는 기본적으로 로컬호스트에서는 설정파일의 변경 없이 접근이 가능하다. 그러나 외부에서의 접근은 허용하지 않는데 외부에서 접근을 하려고 하면 아래와 같은 오류를 맞이한다.
An error has occured:
Error connecting to the server: 치명적오류: 호스트 "server ip" 사용자 "사용자 명", 데이터베이스
"데이터베이스 명", no encryption 연결에 대한 설정이 pg_hba.conf파일에 없습니다.
Ä¡¸íÀû¿À·ù: È£½ºÆ® "server ip", »ç¿ëÀÚ "username", µ¥ÀÌÅͺ£À̽º "db name", no encryption ¿¬°á¿¡ ´ëÇÑ ¼³Á¤ÀÌ pg_hba.conf ÆÄÀÏ¿¡ ¾ø½À´Ï´Ù.
(pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)
설정파일을 수정하여 외부에서 PostgreSQL의 접근을 허용해보자. PostgreSQL 설치 디렉토리에서 data 디렉토리에서 설정파일을 찾을 수 있다.
# 각 위치는 설치 시 지정했던 디렉토리마다 다르니 유의한다.
C:\Program Files\PostgreSQL\14\data
크게 두가지의 설정파일이 존재하며 postgresql.conf는 PostgreSQL의 전반적인 구성 설정 내용들이 있으며, pg_hba.conf는 접근 인증을 설정하는 파일이다. 외부에서의 접근을 가능하도록 하려면 pg_hba.conf 파일만 수정하면 된다.
- postgresql.conf
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
...
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
# - Security and Authentication -
모든 IP 주소를 Listen하고 있으며 포트는 5432, 커넥션 최대 수는 100으로 기본 설정되어 있다.
- pghba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all scram-sha-256
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
기본적으로 로컬에서만 접근을 허용하고 있으며, 아래 코드를 선택하여 추가 후 저장한다.
# 외부 접근 모두 허용
host all all 0.0.0.0/0 scram-sha-256
# 특정 IP (10.10.10.10) 접근 허용
host all all 10.10.10.10/32 scram-sha-256
- Reload Configuration
Server [localhost]: localhost
Database [postgres]: postgres
Port [5432]: 5432
Username [postgres]: postgres
postgres 사용자의 암호:
psql (14.4)
도움말을 보려면 "help"를 입력하십시오.
postgres=#
/* 쿼리를 이용한 pg_reload_conf 함수 실행 */
postgres-# select pg_reload_conf()
/* 또는 */
/* 커맨드의 pg_ctl 사용 */
postgres=# pg_ctl reload -D "C:\Program Files\PostgreSQL\14\data"
이 포스트는 Windows를 기반으로 설명하였지만, 리눅스나 MAC등 다른 OS에 서도 pghba.conf 파일을 수정함으로써 동일한 문제를 해결할 수 있다.
728x90
'Database' 카테고리의 다른 글
[PostgreSQL] 특정 시간 내 등록된 데이터 조회 (0) | 2022.08.10 |
---|---|
PostgreSQL 데이터베이스 및 사용자 생성 (0) | 2022.07.27 |
pgAdmin4로 PostgreSQL서버 접속하기 (0) | 2022.07.26 |
Windows에 pgAdmin4 설치 (0) | 2022.07.26 |
Windows에 PostgreSQL14 설치하기 (0) | 2022.07.22 |
댓글