Menu

메모용 개발 블로그

전체보기 > OS > Linux >

리눅스 우분투 postgresql 설치 및 설정

2021-11-30 01:35:17

우분투 환경에서 postgresql 설치하는 과정을 정리하고자 한다.

1. 패키지 매니저 업데이트 및 설치

이 글에서는 배포판의 기본 저장소 목록을 통한 바로 설치와 postgresql 공식 저장소를 통하여 최신 혹은 특정버전 설치를 나누어 담고 있습니다. 원하는 하위 문단으로 가서 따라해주시면 됩니다.

1. 바로 설치

모든 패키지 매니저를 통한 설치전에는 패키지 매니저 업데이트를 진행해주는 것이 좋다.

sudo apt-get update

그 이후 postgresql을 설치

sudo apt-get install postgresql -y

위와 같이 기본 저장소 목록 내에서 설치를 할 경우 대부분의 경우 유명한 소프트웨어라 설치가 진행된다.

➜  ~ psql --version
psql (PostgreSQL) 10.19 (Ubuntu 10.19-0ubuntu0.18.04.1)

대신 기본버전을 대부분 보수적으로 적용하기에 원하는 버전에 대한 설치는 공식 홈페이지에서 저장소를 추가하여 진행하도록 한다.

2. postgresql 공식 저장소를 통하여 설치

https://www.postgresql.org/download/

이 글의 작성자는 어짜피 혼자 쓰는 용도이므로 가급적 최신버전을 설치하기로 하였다.

# 패키지 매니저 저장소 목록 파일 :
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# 패키지 매니저 인증키 등록:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# 패키지 목록 갱신:
sudo apt-get update

# 최신 버전의 postgresql 설치
# 만약 특정 버전을 원한다면 다음과 같이 입력 'postgresql-12':
sudo apt-get -y install postgresql

공식 홈페이지에 명시되어있는 설치방법이며 간략하게 한글로 주석을 변경하였다.

주석만 참고하고 스크립트는 변경될 가능성이 있으므로 공식 홈페이지를 이용하는 것이 좋다.

➜  ~ psql --version
psql (PostgreSQL) 14.1 (Ubuntu 14.1-1.pgdg18.04+1)

공식 홈페이지의 설치방법대로 설치를 하니 14.1버전으로 설치가 되었다.

2. postgresql 최초 접속

최초 접속시 postgres 리눅스 계정으로 psql 명령어를 실행해주면 된다.

다음 명령어는 postgres 유저 권한으로 psql 명령을 실행한다.

sudo -u postgres psql

해당 기본 계정은 비밀번호가 없다. 비밀번호 지정을 원한다면 다음 명령으로 변경해주자.

ALTER USER postgres WITH PASSWORD '비밀번호';

정상실행 시:

postgres=# ALTER USER postgres WITH PASSWORD '비밀번호';
ALTER ROLE

ALTER ROLE이라는 응답이 발생하면 정삭으로 변경된 것 이다.

종료는 '\q'를 입력하면 종료된다

3. 포트 변경

데이터베이스의 포트를 변경하는 작업이다.

기본포트는 5433이지만

아무래도 기본 포트는 침입시도가 많을 것이기 때문에 별 것아닌 일이지만 기왕이면 이런 포트들은 변경해주는 편이다.

설정파일들은 전부 postgres 계정의 소유다. su 명령으로 해당 계정으로 변경 후 진행하거나 다음 명령어를 통해 postgres 계정의 권한으로 실행하자.

sudo -u postgres vim /etc/postgresql/14/main/postgresql.conf

port = 항목을 찾아서 수정해주면 된다.

vim 기본 모드에서 ''?port ='를 검색하면 바로 나온다!

4. 외부 접속 허용

외부에서 접속하기 위해서는 방화벽 설정은 기본이고 postgresql 설정 파일도 수정을 해주어야 합니다.

3번에서 포트 수정을 해주었던 파일에 들어가서 포트 설정 위에 있습니다.

sudo -u postgres vim /etc/postgresql/14/main/postgresql.conf

기본적으로 주석처리되어있으며 해당 행의 주석을 해제하고 다음과 같이 변경하여 줍니다.

listen_addresses = '*'                  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)

본인이 원하는 대로 설정을 원하는 경우 주석에 설명이 잘 되어 있습니다.

그 다음 해당 파일을 열어서 수정해줍니다.

sudo -u postgres vim /etc/postgresql/14/main/pg_hba.conf

제일 밑으로 가서 다음 행을 작성해줍니다.

host    all             all             0.0.0.0/0               password

완료했다면 postgresql 데몬을 재시작하여 줍니다.

sudo systemctl restart postgresql

별 다른 출력 메시지가 안뜨면 정상적인 실행입니다.

5. 방화벽 설정

이 글에서는 우분투 환경이며 ufw를 이용하여 방화벽을 열어줄 예정입니다.

sudo ufw allow 5433/tcp

실행 예시:

➜  main sudo ufw allow 5433/tcp
Rule added
Rule added (v6)

방화벽 재실행

sudo ufw reload

실행 예시:

➜  main sudo ufw reload
Firewall reloaded

마치며

기본적으로 해야할 만한 것에 대해서만 진행을 해보았습니다.

데이터베이스에 대한 포트와 방화벽은 무작정열어두기만 하였는데. 데이터베이스는 보안이 중요한 것이기 때문에 개인과 환경에 맞는 적절한 설정을 해주어야합니다.