[PostgreSQL] dnf(yum)로 postgreSQL 9.6(구버전) 설치
1. 개요
사용하고 있는 OS는 리눅스 redhat 계열의 Rocky 8.10을 사용하고 있다.
이 글 작성 기준(2024.09월) postgreSQL 버전은 16.4까지 나왔지만, 필자는 9.6 버전을 설치해야 했다.
공식 사이트에서 yum repo 지원은 12버전 이상부터만 지원하기 때문에 9.6 버전은 postgresql의 공식 repo 지원을 받지 못하는 상황이다.
yum repo를 직접 구성해서 9.6 버전을 설치해보자.
2. 설치 과정
a. repo 설정
자신의 os 버전에 맞게 내용을 repo를 구성하면 된다.
# Rocky 8.x 일 때
$ sudo cat << EOF > /etc/yum.repos.d/pgdg-96.repo
[pgdg96-archive]
name=PostgreSQL 9.6 RPMs for RHEL/Rocky Linux/AlmaLinux 8
baseurl=https://yum-archive.postgresql.org/9.6/redhat/rhel-8-x86_64
enabled=1
gpgcheck=1
gpgkey=https://yum.postgresql.org/keys/RPM-GPG-KEY-PGDG
EOF
# CentOS 7.x 일 때
cat << EOF > /etc/yum.repos.d/pgdg-96.repo
[pgdg96-archive]
name=PostgreSQL 9.6 RPMs for RHEL/CentOS 7
baseurl=https://yum-archive.postgresql.org/9.6/redhat/rhel-7-x86_64
enabled=1
gpgcheck=1
gpgkey=https://yum.postgresql.org/keys/RPM-GPG-KEY-PGDG
EOF
만약 공식 지원 버전을 설치하려면, 아래 명령어를 통해 repo를 추가하면 된다.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
b. 변경된 repo 적용
dnf clean all # yum 캐시 정리하고 최신 정보를 가져옴.
dnf repolist # 현재 활성화 된 repo 확인
c. postgresql 9.6 설치
커스텀 repo를 추가해서 postgreSQL 특정 버전을 설치하려면, 모듈 스트림을 비활성화 해야한다는데 원인은 잘 모르겠다...
$ sudo dnf module disable postgresql # 모듈 스트림 비활성화
$ sudo dnf install -y postgresql96-server
d. db 초기화
9.6 버전 기준이다. 다른 버전은 경로랑 파일명이 다를 것이니 확인이 필요하다.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
e. 외부 접속 허용(선택사항)
외부에서 접근하기 위해서 외부 ip에서 접근할 수 있도록 변경이 필요하다.
vi 편집기로 /var/lib/pgsql/9.6/data/postgresql.conf 파일을 열어서
listen_addresses = 'localhost'로 설정되어 있거나 주석처리(#)가 되어 있는 부분을 아래처럼 수정하자.
listen_addresses = '*' # 모든 ip에 대해 허용
f. 인증 방식 변경(선택사항)
외부 클라이언트에서 id/pw를 통해서 접근할 수 있도록 수정해보자.
vi 편집기로 /var/lib/pgsql/9.6/data/pg_hba.conf 파일을 열어서
아래 내용을 추가하자.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 0.0.0.0/0 md5
부가 설명
TYPE - host: 외부에서 TCP/IP로 접속하는 모든 클라이언트를 대상
DATABASE - all: 모든 db를 의미
USER-all: 모든 계정을 의미
ADDRESS-0.0.0.0/0:
METHOD-md5: 비밀번호를 MD5 해시를 사용하여 인증하는 방식
g. 서비스 시작 및 활성화
sudo systemctl start postgresql-9.6 # 서비스 시작
sudo systemctl enable postgresql-9.6 # 데몬 등록
sudo systemctl status postgresql-9.6 # 서비스 상태 확인
g. 방화벽 설정(선택사항)
외부에서 접속하기 위해서 방화벽을 열어줘야 한다. postgreSQL 기본 포트를 사용한다면 5432를 사용하기 때문에 5432 포트를 열어주도록 하자.
sudo firewall-cmd --add-port=5432/tcp --permanent # port 열기
sudo firewall-cmd --reload # reload
sudo firewall-cmd --list-all # 활성화된 규칙 확인
참고사이트
https://www.postgresql.org/support/versioning/