IT/PostgreSQL

[ PostgreSQL ] PostgreSQL 설치

자연산 금붕어 2025. 2. 28. 11:29

※ Installing PostgreSQL 16 on Linux from source.
※ Version: Linux 8.10 (Rocky), PostgreSQL 16.4.


[ Package 설치 ]

- package update

dnf update -y

 

- Developmemt Tools 설치

dnf groupinstall -y "Development Tools" --skip-broken

 

- package 설치

dnf install -y wget readline-devel zlib-devel bison flex libxml2-devel libxslt-devel openssl-devel libicu libicu-deve

 

[ PostgreSQL 설치 전 사전 작업]

- PostgreSQL 관리를 위한 OS 계정 추가 및 비밀번호 설정

useradd -m -U -r postgres
  • -m : 사용자 홈 디렉토리 생성
  • -U : 사용자 그룹 생성
  • -r : 시스템 사용자로 생성

또는 

adduser postgres

 

- PostgreSQL에서 사용할 디렉토리 생성하고 권한 조정

  • 엔진 영역, 데이터 영역, 백업 영역 생성
mkdir -p /postgres /data /backup/archive /backup/backup /backup/pg_dump

  • 소유자 변경
chown -R postgres:postgres /postgres /data /backup

  • 권한 부여
chmod 700 /postgres /data /backup/archive /backup/backup /backup/pg_dump

 

[ PostgreSQL 다운로드 및 컴파일 설치]

- wget을 사용해 PostgreSQL을 다운로드하고 압축 해제

cd ~

wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz

tar -zxvf postgresql-16.4.tar.gz

cd postgresql-16.4

 

- configure, 컴파일, 실행

./configure --prefix=/postgres --with-openssl --with-libxml --with-libxslt

make && make install

 

[ 환경변수 설정 ]

- 사전에 생성한 PostgreSQL 관리요 OS 계정으로 전환

su - postgres

 

- PostgreSQL 전용 환경변수 파일 생성

vi /home/postgres/.postgresrc

# 아래내용 붙여넣기
# PostgreSQL env.
export PGHOME=/postgres
export PGBIN=$PGHOME/bin
export PGLIB=$PGHOME/lib
export PGPORT=5432
export PGDATA=/data
export LD_LIBRARY_PATH=$PGLIB:$LD_LIBRARY_PATH
export PGUSER=postgres
export PGDATABASE=postgres
export PGLOG=/data/log
export SRVLOG=$PGLOG
export PATH=$PGBIN:$PATH
export LANG=C
export PGALOG=/backup/archive
export PGBBAK=/backup/backup
export PGBLOG=$PGLOG
export HOSTUSER=postgres
export BACKUP_PATH=/backup/backup
export PGDBAK=/backup/pg_dump

 

- .bashrc 파일 수정

vi /home/postgres/.bashrc

# 아래 내용을 복사후 .bashrc 맨 아래 붙여넣기
# Get postgres env.
if
[ -f ~/.postgresrc ];
then
. ~/.postgresrc
fi

 

- 변경 사항 적용

source .postgresrc
source .bashrc

# 또는
# . .postgresrc
# . .bashrc
# 샾을 제외하고 입력

 

- initdb

[엔진영역]/bin/initdb --pgdata=/data --encoding=UTF8 --locale=ko_KR.utf8 --data-checksums

 

- PostgreSQL log 디렉토리, 생성, 권한 조정

mkdir /data/log
chmod 700 /data/log

 

- 작동 확인

pg_ctl start

psql 

# DB 접속 후
select version();

반응형

'IT > PostgreSQL' 카테고리의 다른 글

[PostgreSQL] VACUUM이란?  (0) 2025.02.28
[PostgreSQL] MVCC란?  (0) 2025.02.28
[PostgreSQL] PostgreSQL이란?  (0) 2025.02.21