https://jhchoi.tistory.com/53 (이전 설치 가이드 주소)
이전 설치 가이드 까지만 적용하고 DB 계정 및 테이블스페이스, DB를 생성하고
SQL 편집기로 DB에 접근하려 하면 The connection attempt failed. 등의문구가 뜨면서 접속이 불가능 할 것이다.
DB 및 OS 에서 접속을 허용할 IP 를 설정해주지 않았기 때문이다.
0. 시작 전 필요에 따라 sudoers 권한 계정으로 접속
su -
1. postgresql.conf 파일 내 listen_addresses 설정
postgresql.conf 의 listen_addresses는 PostgreSQL 서버가 어떤 네트워크 인터페이스에서 연결을 수신할지 결정하는 설정. 기본값은 localhost로 설정되어 있어 로컬에서만 접속 가능.
# vi nano 등의 편집기를 이용하여 아래 파일을 편집
# 사용자 환경에 따라 /var/lib/pgsql 이후 경로는 상이할 수 있음.
nano /var/lib/pgsql/17/data/postgresql.conf
# /var/lib/pgsql/17/data/postgresql.conf 파일 내에서 주석 처리되어있는 아래 구문을 주석 제거
# 기존 설정 예시
#listen_addresses = 'localhost'
# 모든 IP에서의 접속을 허용하려면
listen_addresses = '*'
# 특정 IP에서만 접속을 허용하려면 (예: 192.168.1.100)
listen_addresses = 'localhost,192.168.1.100'
# DB 서비스 재시작
sudo systemctl restart postgresql-17
# DB 서비스 재실행
sudo systemctl reload postgresql-17
# DB 서비스 실행 상태 확인
sudo systemctl status postgresql-17
2. pg_hba.conf 설정
pg_hba.conf 파일은 PostgreSQL에 대한 클라이언트 인증 방식을 정의하는 파일이며,
여기서 호스트, 데이터베이스, 사용자, 인증 방법 등을 설정할 수 있음.
listen_addresses만 설정하고 pg_hba.conf 파일을 수정하지 않으면 PostgreSQL 서버는 외부에서의 연결 요청을 수신할 수 있지만, 실제로 클라이언트가 데이터베이스에 접속하려고 할 때 인증 단계에서 접근이 거부됨.
# vi nano 등의 편집기를 이용하여 아래 파일을 편집
# 사용자 환경에 따라 /var/lib/pgsql 이후 경로는 상이할 수 있음.
nano /var/lib/pgsql/17/data/pg_hba.conf
# 파일 내용의 최하단에 아래 중 필요한 내용을 작성하여 사용
# 내용 중 공백은 탭으로 정렬하여 사용
# 모든 IPv4 호스트에서 모든 데이터베이스, 모든 사용자에 대해 scram-sha-256 인증 허용
host all all 0.0.0.0/0 scram-sha-256
# 특정 IP 대역에서 특정 데이터베이스와 사용자에 대해 scram-sha-256 인증 허용
host mydatabase myuser 192.168.1.0/24 scram-sha-256
# DB 서비스 재시작
sudo systemctl restart postgresql-17
# DB 서비스 재실행
sudo systemctl reload postgresql-17
# DB 서비스 실행 상태 확인
sudo systemctl status postgresql-17
3. 방화벽 설정
#사용 중인 방화벽 zone 확인
firewall-cmd --get-active-zones
# 위의 zone 이름에 public 이 속해있었다면 public 의 정책 조회
firewall-cmd --list-all --zone=public
# public zone 에 postgres port 5432 허용 추가
# 즉시 허용 (재부팅 시 사라짐)
firewall-cmd --zone=public --add-port=5432/tcp
# 영구 설정
firewall-cmd --zone=public --add-port=5432/tcp --permanent
# 영구 설정 적용
firewall-cmd --reload
# 정책 적용 확인
firewall-cmd --list-all --zone=public
'PostgreSQL > install' 카테고리의 다른 글
5. PostgreSQL RHEL 설치: 테이블 스페이스 용 디스크 마운트 (0) | 2025.01.08 |
---|---|
4. PostgreSQL RHEL 설치: 사용자 생성 및 패스워드 설정 (0) | 2025.01.08 |
2. PostgreSQL RHEL 설치: OS 사용자 계정 전환 후 CLI 접속 (1) | 2025.01.07 |
PostgreSQL JDBC 드라이버 다운로드 주소 (1) | 2025.01.03 |
1. PostgreSQL RHEL 설치: DNF 패키지 매니저를 이용한 기본 설치 (0) | 2025.01.02 |