[PostgreSQL] 설치 및 기본설정 (Ubuntu)

gweowe·2023년 7월 28일
0

PostgreSQL은 오픈 소스 데이터베이스 관리 시스템으로, 안정성과 확장성이 뛰어나며 다양한 프로젝트와 응용 프로그램에서 널리 사용되고 있습니다. PostgreSQL 데이터베이스를 설치하고 기본적으로 접속할 수 있는 환경을 설정하는 방법에 대해 알아보겠습니다.

사전 준비 사항

1. 패키지 등록하기

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

PostgreSQL 패키지를 구성합니다.

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

패키지의 버전에 문제가 없는지 확인하기 위해 GPG Key를 추가합니다.

2. 패키지 매니저 업데이트

최신 버전의 소프트웨어 정보를 얻기 위해 패키지 매니저를 업데이트합니다.

sudo apt update

PostgreSQL 설치

1. 패키지 매니저를 통해서 설치

sudo apt install postgresql -y

PostgreSQL 설정

1. 설정 파일 위치 찾기

환경마다 설정 파일의 위치가 다를 수 있기 때문에 설정파일의 위치를 찾습니다.

sudo -i -u postgres psql -U postgres -c 'SHOW config_file'
Output :
               config_file
-----------------------------------------
 /etc/postgresql/12/main/postgresql.conf
(1 row)

저 같은 경우에는 /etc/postgresql/12/main/위치에 설정 파일이 존재했습니다.

2. 설정 파일 수정

postgresql.conf
# ..............................생략..............................

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

# ..............................생략..............................

모든 주소에서 접근할 수 있도록 listen_addresses*로 수정합니다.

pg_hba.conf (postgresql.conf와 같은 위치에 존재)
# ..............................생략..............................

# "local" is for Unix domain socket connections only
local   all             all                                     peer

# ..............................생략..............................

PostgreSQL에 대해 연결을 허용하기 위해 수정합니다.

pg_hba.conf은 어떤 호스트(클라이언트)가 어떤 방식으로 PostgreSQL 서버에 접근할 수 있는지를 제어하는 설정 파일입니다. 이 파일의 규칙은 아래와 같습니다.

TYPE  DATABASE  USER  ADDRESS  METHOD
  • TYPE: 접근자 유형을 지정합니다. 가장 일반적인 유형으로 local, host가 있습니다.
  • DATABASE: 접근하려는 데이터베이스의 이름을 지정할 수 있으며, all을 기입하여 모두를 지정할 수 있습니다.
  • USER: 접근하려는 사용자의 이름을 지정할 수 있으며, all을 기입하여 모두를 지정할 수 있습니다.
  • ADDRESS: 클라이언트의 주소 또는 서브넷을 지정합니다.
  • METHOD: 인증 방법을 지정합니다. 일반적으로 trust(인증 안함), md5(md5 해시 기반 패스워드), password(일반 패스워드), reject(거부) 등이 사용됩니다.

3. PostgreSQL 재시작

설정 적용을 확실하게 하기 위해서 PostgreSQL을 재시작 합니다.

sudo systemctl restart postgresql.service

이제 모든 설정이 완료되었습니다.

PostgreSQL 실행

1. postgres 계정으로 로그인

psql -U postgres
Output :
psql: error: FATAL:  Peer authentication failed for user "postgres"

인증 방법이peer일 경우에는 바로 접속할 수 없습니다. 그러므로, linux의 유저를 변경하여 접속해야 합니다.

sudo -i -u postgres

PostgreSQL을 설치하면서 생성된 postgres유저로 변경합니다.

psql

PostgreSQL로 접속합니다.

2. postgres 계정 비밀번호 변경

alter user postgres with password '<변경할 비밀번호>';

postgres 유저의 비밀번호를 변경합니다.

3. 설정 파일 수정

pg_hba.conf
# ..............................생략..............................

# "local" is for Unix domain socket connections only
local   all             all                                     md5

# ..............................생략..............................

local에 대한 접속 방식을 peer에서 md5로 변경하여 패스워드로 진입할 수 있도록 수정합니다.

4. PostgreSQL 재시작

설정 적용을 확실하게 하기 위해서 PostgreSQL을 재시작 합니다.

sudo systemctl restart postgresql.service

이제 모든 설정이 완료되었습니다.

5. postgres 계정으로 로그인

psql -U postgres
Output :
psql (12.15 (Ubuntu 12.15-0ubuntu0.20.04.1))
Type "help" for help.

postgres=#

제대로 접속이 되었음을 확인하실 수 있습니다.

profile
정리하는 공간

0개의 댓글