Dev/DB

PostgreSQL 설치 (Ubuntu)

고랑E 2023. 10. 13. 00:15
728x90

본 글은 Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-86-generic x86_64) 버전을 기준으로 작성합니다.

 

오랜만에 옆에서 놀고있는 우분투서버를 켜서 거기에 PostgreSQL을 설치해보았다.

 

공식 사이트(https://www.postgresql.org/download/linux/ubuntu/)에 나와있는 데로 진행

 

1. sources.list.d 에 PostgreSQL 공식 저장소를 추가

sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

 

2. PostgreSQL의 공식 GPG 키를 받고 추가

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

 

3. 시스템의 패키지 목록을 최신으로 업데이트

sudo apt-get update

3-1. 업데이트때 아래와 같이 에러가 뜬다면 다음 명령어 입력 후 다시 업데이트 해보면 오류가 해결된다

N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease' doesn't support architecture 'i386'

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

 

4. postgresql 설치

sudo apt-get -y install postgresql

 

5. 버전확인

psql --version

 

6. 서버 상태 확인

systemctl status postgresql

 

7. LISTEN 확인해서 포트 확인(기본 포트 5432)

sudo ss -ntlp

근데 이것처럼 127.0.0.1 로 되어있다면 로컬 접속만 허용한다

PostgreSQL은 기본 설치시 로컬 접속만 허용함

 

8. 접속해서 비밀번호 변경

sudo -u postgres psql

이렇게 뜨면  비밀번호 부분에 원하는 비밀번호를 넣고 입력한다.

ALTER USER postgres with encrypted password '비밀번호';

이것처럼 ALTER ROLE 이 뜨면 성공

 

 

9. nano 에디터로 설정파일 수정 (2개 파일)

sudo nano /etc/postgresql/16/main/postgresql.conf

sudo nano /etc/postgresql/16/main/pg_hba.conf

# 16 부분에 본인이 설치한 버전을 써준다.

postgresql.conf 파일

 

 

CONNECTIONS AND AUTHENTICATION 부분에 

#listen_addresses = 'localhost'     # what IP address(es) to listen on;

이 부분을 주석처리를 해제하고 localhost 부분을 * 로 바꿔준다.

 

pg_hba.conf 파일

host all all 0.0.0.0/0 scram-sha-256

를 맨 아래 쪽에 추가 및 저장

 

모든 외부 연결을 허용해주는거니 본인 상황에 맞춰 아래 링크 참고해서 사용 하기 바람

 

https://www.postgresql.org/docs/14/auth-pg-hba-conf.html

 

21.1. The pg_hba.conf File

21.1. The pg_hba.conf File Client authentication is controlled by a configuration file, which traditionally is named pg_hba.conf and is stored in …

www.postgresql.org

 

 

10. PostgreSQL 서비스 재시작 및 포트 확인

sudo service postgresql restart
 sudo ss -ntlp | grep 5432
 
 # 뒤에  grep 포트 << 를 적어주면 해당 포트만 확인해준다.

 

11. 접속 후 슈퍼계정 생성

sudo -u postgres psql
create user test password 'test1234' superuser;

계정 test 비번 test1234 라는 슈퍼계정 생성 명령어

입력하면 CREATE ROLE 이라는 문구가 뜬다.

 

12. 데이터베이스 생성, 소유자 설정

create database testdb owner test;

계정 test 에 testdb의 데이터베이스 소유자를 지정하는 명령어

입력하면 CREATE DATABASE 이라는 문구가 뜬다.

 

13. 사용자 목록 및 데이터베이스 목록 보기

# 사용자 목록
\du

# 데이터베이스 목록
\l