본문으로 건너뛰기

Postgres 설정

등록일: 2025. 7. 28. 3:13


PostgreSQL 17 로컬 설치 및 외부 접속 설정 가이드 (UTF-8 + ko_KR.UTF-8, 사용자 정의 데이터 디렉토리)

이 가이드는 PostgreSQL을 APT로 설치한 후, 커스텀 데이터 디렉토리(/data001/postgres/data)를 사용하여 UTF-8 기반 클러스터를 구성하고,
외부 접속, 사용자 계정, 데이터베이스 생성까지 완료하는 전체 과정을 정리한 것입니다.

※ 대상 환경: Ubuntu 22.04 이상

1. APT로 PostgreSQL 설치 (17버전 기준)

sudo apt update
sudo apt install -y postgresql-17 postgresql-client-17

2. 데이터 디렉토리 생성 및 권한 설정

sudo mkdir -p /data001/postgres/data
sudo chown -R postgres:postgres /data001/postgres/data

3. 기존 클러스터 제거

sudo systemctl stop postgresql
sudo pg_dropcluster 17 main

4. UTF-8 및 한글 로케일 기반 클러스터 생성 (데이터 디렉토리 지정)

sudo pg_createcluster \
--locale=ko_KR.UTF-8 \
--encoding=UTF8 \
--datadir=/data001/postgres/data \
17 main

5. PostgreSQL 설정 파일 수정 (외부 접속 허용)

sudo nano /etc/postgresql/17/main/postgresql.conf
# → listen_addresses = '*' 설정 변경

sudo nano /etc/postgresql/17/main/pg_hba.conf
# → host all all 0.0.0.0/0 md5 추가

6. PostgreSQL 서비스 재시작 및 상태 확인

sudo systemctl restart postgresql
sudo -u postgres psql -c "SHOW port;"
sudo -u postgres psql -c "SHOW listen_addresses;"

7. postgres 슈퍼유저 비밀번호 설정

sudo -u postgres psql
# 실행 후 아래 SQL 입력
# ALTER USER postgres WITH PASSWORD 'your_secure_password';

8. raid_app 계정 생성

CREATE USER raid_app WITH PASSWORD '********';

9. dbraidp1 데이터베이스 생성 (UTF-8, 소유자: raid_app)

CREATE DATABASE dbraidp1
WITH OWNER = raid_app
ENCODING = 'UTF8'
LC_COLLATE = 'ko_KR.UTF-8'
LC_CTYPE = 'ko_KR.UTF-8'
TEMPLATE = template0;

10. (선택) raid_app의 future object 권한 부여 (DDL/DML 포함)

\c dbraidp1

ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON TABLES TO raid_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON SEQUENCES TO raid_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT ALL ON FUNCTIONS TO raid_app;

[Tip] 외부에서 접속 시

  • 호스트: 서버IP 또는 172.17.0.1
  • 포트: 5432
  • 사용자: raid_app
  • DB명: dbraidp1
  • 비밀번호: ******** ## [Tip] DB Dump 복원시
PGPASSWORD=******** psql -h localhost -U raid_app -d dbraidp1 -f /data001/postgres/dbraidp1_20250727_050250_DrjA.sql