본문 바로가기

리눅스

우분투 24.04에서 PostgreSQL을 설치하는 방법

반응형

우분투 24.04에서 PostgreSQL을 설치하는 방법

우분투 24.04에 PostgreSQL 17을 공식 PostgreSQL APT 저장소(PGDG)를 통해 설치하고 기본 설정 및 외부 접속까지 구성하는 방법입니다.

테스트 환경

$ lsb_release -d
Description:    Ubuntu 24.04.2 LTS

APT 패키지 목록 업데이트

sudo apt update

필수 패키지 설치

sudo apt install -y curl ca-certificates gnupg lsb-release

PostgreSQL APT 저장소 추가

sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main' > /etc/apt/sources.list.d/pgdg.list"

GPG 키 등록

sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

APT 캐시 재갱신

sudo apt update

PostgreSQL 17 설치

최신 버전인 PostgreSQL 17을 설치합니다.

  • 기본 포트 : 5432
  • 데이터 디렉토리 : /var/lib/postgresql/17/main
  • 설정 파일 경로 : /etc/postgresql/17/main/postgresql.conf
  • 접근 제어 파일 : /etc/postgresql/17/main/pg_hba.conf
sudo apt install -y postgresql-17 postgresql-client-17 postgresql-server-dev-17
더보기

---

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  clang-19 icu-devtools lib32gcc-s1 lib32stdc++6 libc-bin libc-dev-bin libc-devtools libc6 libc6-dev libc6-i386 libclang-common-19-dev
  libclang-cpp19 libclang-rt-19-dev libclang1-19 libcommon-sense-perl libffi-dev libgc1 libicu-dev libio-pty-perl libipc-run-perl libjson-perl
  libjson-xs-perl libllvm19 libncurses-dev libobjc-13-dev libobjc4 libpfm4 libpq-dev libpq5 libssl-dev libtypes-serialiser-perl libxml2-dev
  llvm-19 llvm-19-dev llvm-19-linker-tools llvm-19-runtime llvm-19-tools locales postgresql-client-common postgresql-common
  postgresql-common-dev ssl-cert
Suggested packages:
  clang-19-doc wasi-libc glibc-doc libnss-nis libnss-nisplus icu-doc ncurses-doc postgresql-doc-17 libssl-doc pkg-config llvm-19-doc
The following NEW packages will be installed:
  clang-19 icu-devtools lib32gcc-s1 lib32stdc++6 libc6-i386 libclang-common-19-dev libclang-cpp19 libclang-rt-19-dev libclang1-19
  libcommon-sense-perl libffi-dev libgc1 libicu-dev libio-pty-perl libipc-run-perl libjson-perl libjson-xs-perl libllvm19 libncurses-dev
  libobjc-13-dev libobjc4 libpfm4 libpq-dev libpq5 libssl-dev libtypes-serialiser-perl libxml2-dev llvm-19 llvm-19-dev llvm-19-linker-tools
  llvm-19-runtime llvm-19-tools postgresql-17 postgresql-client-17 postgresql-client-common postgresql-common postgresql-common-dev
  postgresql-server-dev-17 ssl-cert
The following packages will be upgraded:
  libc-bin libc-dev-bin libc-devtools libc6 libc6-dev locales
6 upgraded, 39 newly installed, 0 to remove and 87 not upgraded.
Need to get 175 MB of archives.
After this operation, 908 MB of additional disk space will be used.

---

PostgreSQL 상태 확인

sudo systemctl status postgresql

버전 확인

psql --version
psql (PostgreSQL) 17.5 (Ubuntu 17.5-1.pgdg24.04+1)

PostgreSQL 셸

sudo -u postgres psql -c "SELECT version();"
                                                              version                                                              
-----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 17.5 (Ubuntu 17.5-1.pgdg24.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, 64-bit
(1 row)
더보기

---

기본 사용법

  • PostgreSQL 셸 접속
sudo -u postgres psql
  • 버전 확인
SELECT version();

---

728x90

PostgreSQL 기본 설정

postgres 사용자로 전환

sudo -i -u postgres

PostgreSQL 셸(psql) 접속

psql
더보기

---

기본 설정

  • 비밀번호 설정 : 보안을 위해 postgres 계정의 비밀번호를 설정합니다.
ALTER USER postgres WITH ENCRYPTED PASSWORD 'your_secure_password';

---

새 사용자 및 데이터베이스 생성

CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE my_db OWNER myuser;
GRANT ALL PRIVILEGES ON DATABASE my_db TO myuser;

PostgreSQL 셸 종료

\q

외부 접속 허용 설정

postgresql.conf 수정

sudo vim /etc/postgresql/17/main/postgresql.conf

listen_addresses 항목을 수정

listen_addresses = '0.0.0.0'

pg_hba.conf 수정

sudo vim /etc/postgresql/17/main/pg_hba.conf

라인 추가(모든 IP에 대해 md5 인증 허용)

host    all             all             all                     scram-sha-256

서비스 재시작

sudo systemctl restart postgresql

 

참고URL

- PostgreSQL : Released

- PostgreSQL : Linux downloads (Ubuntu)

- pgAdmin : Download pgAdmin 4 (Windows)

 

반응형