본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] PostgreSQL 설치하고 원격으로 접속하기 - CentOS

반응형

CentOS에 PostgreSQL을 설치하는 방법을 단계별로 설명하겠습니다. PostgreSQL은 CentOS에서 기본 패키지 관리 도구인 dnf(또는 CentOS 7의 경우 yum)를 사용하여 설치할 수 있으며, PostgreSQL 공식 리포지토리를 추가하여 최신 버전을 설치하는 것이 일반적입니다.

1. PostgreSQL 저장소 추가

PostgreSQL의 공식 리포지토리를 CentOS에 추가합니다. 먼저 PostgreSQL 공식 페이지에서 제공하는 리포지토리 설정 패키지를 설치해야 합니다.

PostgreSQL 버전에 따라 URL이 다를 수 있으므로, 원하는 PostgreSQL 버전을 지정한 URL을 사용합니다. 여기서는 PostgreSQL 15 기준으로 설치하겠습니다.

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

위 명령은 CentOS 8에서 PostgreSQL 15의 리포지토리를 추가합니다. 만약 CentOS 7을 사용하는 경우에는 EL-7-x86_64를 사용하면 됩니다.

2. 기본 PostgreSQL 모듈 비활성화

CentOS 8 이상에서는 기본적으로 PostgreSQL 모듈이 활성화되어 있기 때문에, 공식 리포지토리에서 최신 버전을 설치하려면 이 모듈을 비활성화해야 합니다.

sudo dnf -qy module disable postgresql

3. PostgreSQL 설치

이제 PostgreSQL 서버와 클라이언트를 설치합니다. PostgreSQL 15을 설치하는 경우 아래 명령을 사용합니다.

sudo dnf install -y postgresql15-server postgresql15

설치가 완료되면 PostgreSQL 서버 초기화와 서비스를 설정해야 합니다.

4. 데이터베이스 초기화

PostgreSQL을 처음 설치하면 데이터베이스를 초기화해야 합니다. postgresql-setup 명령을 사용하여 데이터베이스 클러스터를 초기화합니다.

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

5. PostgreSQL 서비스 시작 및 부팅 시 자동 시작 설정

PostgreSQL 서버를 시작하고, 부팅 시 자동으로 시작되도록 설정합니다.

# 서비스 시작
sudo systemctl enable --now postgresql-15

# PostgreSQL 서비스 상태 확인
sudo systemctl status postgresql-15

6. PostgreSQL 접속 및 초기 설정

PostgreSQL이 설치되고 나면, 기본적으로 postgres라는 시스템 사용자와 데이터베이스 슈퍼유저가 생성됩니다. PostgreSQL 셸에 접속하려면 postgres 사용자로 로그인해야 합니다.

sudo -i -u postgres

그 후 PostgreSQL 셸(psql)에 접속할 수 있습니다.

psql

여기서 데이터베이스 관련 명령을 실행할 수 있습니다.

PostgreSQL에서 새로운 비밀번호 설정

PostgreSQL에서는 기본적으로 postgres 사용자에게 비밀번호가 설정되어 있지 않습니다. 비밀번호를 설정하려면 다음 명령어를 실행합니다.

ALTER USER postgres PASSWORD '새로운_비밀번호';

7. PostgreSQL 방화벽 설정 (옵션)

만약 PostgreSQL 서버를 외부에서 접속할 수 있도록 설정하려면, 방화벽에서 PostgreSQL의 기본 포트인 5432를 열어야 합니다.

sudo firewall-cmd --add-service=postgresql --permanent
sudo firewall-cmd --reload

8. 외부 접속을 허용하려면 설정 파일 수정 (옵션)

기본적으로 PostgreSQL은 로컬 접속만 허용합니다. 외부에서 PostgreSQL에 접속하려면 설정 파일을 수정해야 합니다.

  1. postgresql.conf 파일에서 listen_addresses 설정을 수정합니다.
   sudo vi /var/lib/pgsql/15/data/postgresql.conf

listen_addresses'localhost'에서 '0.0.0.0' 또는 특정 IP로 변경합니다:

   listen_addresses = '0.0.0.0'
  1. pg_hba.conf 파일에서 클라이언트 접속을 허용하는 규칙을 추가합니다.
   sudo vi /var/lib/pgsql/15/data/pg_hba.conf

아래와 같은 라인을 추가하여 외부 접속을 허용합니다:

   host    all             all             0.0.0.0/0               md5
  1. PostgreSQL 서버를 재시작하여 변경 사항을 적용합니다.
   sudo systemctl restart postgresql-15

요약

  1. PostgreSQL 리포지토리를 추가합니다.
  2. PostgreSQL 기본 모듈을 비활성화하고, 공식 리포지토리에서 최신 PostgreSQL을 설치합니다.
  3. 데이터베이스를 초기화하고 PostgreSQL 서비스를 시작합니다.
  4. postgres 사용자로 접속하여 필요한 초기 설정을 완료합니다.
  5. (옵션) 외부 접속을 허용하고자 한다면 방화벽 및 설정 파일을 수정합니다.

이 과정을 완료하면 CentOS에 PostgreSQL이 설치되고 사용할 준비가 완료됩니다. PostgreSQL 클라이언트를 사용하여 데이터베이스를 생성하고 관리할 수 있습니다.

반응형