Linux

[Rocky 8] Rocky Linux 8에 PostgreSQL 14 설치하기

메바동 2022. 9. 19. 22:31
728x90
# rpm 저장소 설치:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Disable the built-in PostgreSQL module:
# 기본 제공 PostgreSQL 모듈 비활성화
sudo dnf -qy module disable postgresql

# PostgreSQL 설치:
sudo dnf install -y postgresql14-server

# PostgreSQL 초기화 및 부팅 시 자동 시작 설정:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

# 출처: https://www.postgresql.org/download/linux/redhat/

 

회사에서는 현재 CentOS 7을 사용하고 있다.

2024년 6월 30일에 지원이 중단된다고 하니 다른 OS를 고려하고 있는 것 같았다.

이번에 공부용으로 DB 테스트를 할 VM에 설치할 리눅스를 찾던 중 Ubuntu를 서버로 사용하는 회사는 별로 없는 것 같고, 아무래도 RHEL 기반의 리눅스를 설치해서 다뤄보는 게 좋을 것 같았다.

CentOS를 대체할 OS로 Rocky, Alma, Oracle... 뭐 기타 등등 있는데, Rocky Linux를 눈여겨보고 있었기 때문에 Rocky Linux 8을 설치하고 DB를 설치하기로 하였다.

 

Rocky Linux 8에서는 yum의 문제점을 해결하기 위해 개발된 dnf를 기본 패키지 관리 도구로 사용하고 있었다.

 

기본적으로 제공하는 저장소에서는 PostgreSQL 14를 받을 수 없기 때문에 따로 PostgreSQL 14 저장소를 추가시켜줘야 한다.

 

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

 

다음으로는 기본 저장소에서 제공하는 PostgreSQL 모듈을 비활성화시켜준다.

 

sudo dnf -qy module disable postgresql

 

비활성화하는 과정이 생각보다 오래 걸렸다. 멈췄다고 생각하고 Ctrl + C를 날리지 않기를 바란다.

dnf module list postgresql로 조회해보면 모든 버전이 disabled 된 것을 확인할 수 있다.

 

sudo dnf install -y postgresql14-server

 

이제 PostgreSQL 14의 설치는 끝이 났다.

이 상태에서 systemctl start postgresql-14.service를 해버리면 지난번 포스팅에서 확인한 에러를 볼 수 있다.

공식 문서에서 init을 진행하라고 되어있는데 앞으로는 어떤 것을 할 때는 공식 문서를 보는 것을 습관화해야겠다.

 

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

 

위 명령어들을 입력해서 PostgreSQL을 초기화한 뒤, 부팅 시 자동 시작을 등록하고 PostgreSQL을 시작시킨다.

이렇게 하면 DB 설치는 끝이 난다.

 

하지만 DB를 설치한 후에 외부에서 접속할 수 있도록 설정해 주어야 한다.

 

그렇지 않으면 이렇게 노트북에서 DB Tool로 VM에 설치된 DB에 접속할 수 없다.

 

sudo vi /var/lib/pgsql/14/data/postgresql.conf

 

편집기로 /var/lib/pgsql/14/data/postgresql.conf를 열러 #listen_addresses = 'localhost'로 되어있는 부분을

listen_addresses = '*'

주석을 풀고 위와 같이 바꿔준 뒤 저장해준다.

 

sudo vi /var/lib/pgsql/14/data/pg_hba.conf

그다음 /var/lib/pgsql/14/data/pg_hba.conf를 열어준 뒤, IPv4 항목에

host    all             all             0.0.0.0/0               md5

를 추가시켜 준 뒤 PostgreSQL 14를 재시작해준다.

 

그러면 이제 DB Tool로 접속이 되겠지??

아니다. 방화벽에서 5432 포트를 열어주어야 한다. 만약 DB 포트를 수정했다면 해당 포트를 열어주어야 한다.

 

sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

 

firewall-cmd를 이용하여 5432 포트를 허용해준 뒤 방화벽을 새로고침 해준다.

 

 

외부에서도 접속할 수 있는 상태가 되었다.

 

이제 열심히 DB 테스트를 해보자.

728x90