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