본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

(부록) Windows PostgreSQL 외부 접속 가능하게 설정하는 방법

by DoitSQL 2023. 3. 21.
728x90

Windows 포트여는 방법, Windows 포트 접속 허용하는 방법

(부록) Windows PostgreSQL 외부 접속 가능하게 설정하는 방법

Windows PostgreSQL 외부 접속 가능하게 설정하는 방법

로컬에 설치한 PostgreSQL을 원격 접속하는 방법에 대한 포스팅이다.

현재 공유기에 물려 같은  외부 ip를 사용하고 있고 내부 ip만 공유기에서 다르게 할당된 상태이다.

 

이 포스팅은 윈도우에 설치된 PostgreSQL을 대상으로 하지만, 사실 설정파일의 명칭과 위치는 리눅스, 유닉스 등등의 OS와 상관없이 항상 같기 때문에 해당 OS 환경에서도 참고할 수 있다.

 

DB서버와 클라이언트서버는 같은 네트워크 대역대에 있다고 가정한다.
(같은 네트워크 대역대가 아니라면 PostgreSQL 설정뿐 아니라 공유기나 방화벽 등등의 설정 작업을 추가해야 할 것이다.)


PostgreSQL 설정 변경   

▶ pg_hba.conf 파일 수정

pg_hba.conf 파일은 PostgreSQL이 설치된 폴더의 data 폴더 밑에 있다.

(C:\Program Files\PostgreSQL\15\data\pg_hba.conf 수정)

설치 위치는 다를 수 있다.

 

찾아가기 힘들다면 Everything을 이럴 때 사용한다.

2023.01.21 - [IT/윈도우 무료 툴 소개] - Everything 실시간 파일/폴더 검색의 최강자

 

Everything 실시간 파일/폴더 검색의 최강자

Everything 실시간 파일/폴더 검색의 최강자 윈도를 사용하다 보면 파일을 찾아야 할 때가 있습니다. 분명히 저장은 했는데 어디에 저장되었는지 도무지 생각이 안 납니다. 때로는 어떤 세팅을 따

doitsql.tistory.com

파일을 열고 마지막까지 내린다.

# 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
# 2023/03/20 변경
# 외부 접근 모두 허용
host    all             all             0.0.0.0/0            scram-sha-256

16번 줄 추가하고 저장한다.

 

 

postgresql.conf 파일 확인

postgresql.conf 파일은 PostgreSQL이 설치된 폴더의 data 폴더 밑에 있다.

(C:\Program Files\PostgreSQL\15\data\postgresql.conf 확인)

설치 위치는 다를 수 있다.

 

찾아가기 힘들다면 Everything을 이럴 때 사용한다.

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - 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)

7,11,12번 줄을 확인한다. 혹시 port를 변경하신 분도 있을 수 있다.

 

 

 postgresql 서버 재시작

1. pgAdmin을 실행

2. 'Reload Configuration' 선택 : 변경사항이 적용될 수 있도록 서버를 재시작한다. 명령줄에서 하는 방법도 있으나 이게 제일 간단하다.

Reload Configuration

이렇게 하면 PostgreSQL 서버 쪽 설정은 끝났다. 그런데 클라이언트에서 접속하면 안 된다.


Windows Port 열기   

1. 설정 - 업데이트 및 보안 - Windows 보안 - 방화벽 및 네트워크 보호 - 고급설정으로 간다.

2. 인바운드 규칙 - 새 규칙 선택

새 규칙

3. 포트 선택 후 다음

포트

4. tcp 선택,  특정로컬포트에 5432(PostgreSQL 사용 포트) 입력 후 다음

5432

5. 연결허용 선택 후 다음

작업

6. 프로필은 3개 다 선택해도 되고, 필요한 거 선택 (저는 개인만 선택했습니다.) 

프로필

7. 이름, 설명을 입력하고 마침하면 됩니다.

완료

이 방법은 일반적인 Windows 포트를 여는 방법으로 다른 경우에도 사용하는 방법입니다.

 

혹시 v3나 알약 등 백신에서 ip접속을 인지하고 팝업 띄우면 '허용'해 주시면 됩니다.


이후 클라이언트에서 접속설정을 tcpip에 서버용 컴퓨터 ip를 입력하고, 사용자, 비밀번호, DB 선택하고 접속하면 됩니다.

 

감사합니다.

 

Do it! SQL을 찾아 주셔서 감사합니다. ♥ 댓글이 큰 힘이 됩니다.

 

728x90

댓글