오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Web Programming

[postgresql] Ubuntu에서 postgresql 설치하고 외부 접속 열어주기

junha6316 2021. 3. 19. 16:41

 

1. PostgreSQL 설치

apt-get을 업데이트하고 postgresql과 postgresql-contrib을 다운로드 받아준다.

sudo apt-get update
sudo apt-get install -y postgresql postgresql-contrib

postgresql-contrib은 postgresql을 사용하기 위한 확장팩이라고 생각하면 된다.

 

2. 계정 및 데이터베이스 생성

postgresql을 다운받으면 자동으로 postgres라는 유저가 생성되는데 먼저 postgres로 postgresql shell에 접근할 수 있다.

만약 그냥 접근하려고 하면 아래와 같이 해당 유저가 존재하지 않는다고 나온다.

root로 해도 안된다. 

먼저 접속된 유저를 바꿔주기 전에 postgres 유저의 비밀번호부터 바꿔주자 아래 명령어를 작성하면 원하는 비밀번호 2번을 치면 바꿔준다.

sudo passwd postgres

자 이제 postgres로 접속해보자

sudo su postgres

아래의 명령어를 통해 데이터베이스에 접근한다.

psql

postgresql shell 접근 완료

이후 과정은 데이터 베이스를 생성하고 데이터 베이스에 접근할 유저를 생성하는 과정인데 아래 링크의 2번째 글을 보면 된다.

cocook.tistory.com/90

 

[postgresql] Mac에서 Postgresql 설치 하기

오늘은 Postgresql을 MAC에 설치하는 방법에 대해 알아보겠다. Postgresql은 Django와 자주 사용하는 데이터 베이스이다. 나의 경우에는 ArrayField를 사용하기 위해 Django에서 디폴트로 설치하는 sqlite 대신

cocook.tistory.com

 

3. 외부 접근 허용하기

데이터베이스를 사용하다보면 외부에서 접근을 허용해줘야한할 때가 있다.

도커이미지를 띄우는데 도커 호스트에 데이터 베이스를 같이두거나(물론 이런 경우는 많지 않지만) 애초에 데이터 베이스가 서버와 분리 되어있을 때가 대표적인 예이다. postgresql의 외부접속을 허용해주기 위해선 아래 설정 파일을 수정해줘야한다.

postgresql.conf는 postgresql의 전반적인 설정을 담고 있는 파일이다. 

sudo vi /etc/postgresql/10/main/postgresql.conf

postgersql.conf

여기서 listen_addresses를 변경해주면 된다. 만약 모든 ip 주소에대해 허용하고 싶으면 listen_addresses = '0.0.0.0' 으로 해주면 된다.

 

다음은 해당 아이피에 권한을 부과해줘야한다. 아래 설정 파일을 수정하도록 하자 이 설정 파일은 인증시스템 관련 설정을 담고 있다. 

sudo vi /etc/postgresql/10/main/pg_hba.conf

이 파일의 가장 아래 이런 부분이 있는데 

# IPv5 local connection을 아래와 같이 작성해준다. ip_address에는 원하는 ip주소를 적어주면된다. 예를 들어 위에서 설정했던 0.0.0.0/0

# IPv4 local connections:
host    all             all             ip_address            md5

이 부분에 대한 자세한 내용은 아래 포스트에 있다.

brownbears.tistory.com/154

 

[PostgreSQL] pg_hba.conf 설명

PostgreSQL의 pg_hba.conf 파일을 통해 외부접근에 대한 처리는 되도록 배재하는것이 좋습니다. 외부접근제어는 시스템 OS Kernel Level의 Packet Filter( iptable, ipchain...)를 이용하는 것이 PostgreSQL..

brownbears.tistory.com

이제 설정을 완료하였다. postgresql을 재시작해주자

sudo systemctl restart postgresql

마지막으로 port가 열렸는지 확인해보자

netstat -ntlp | grep 5432

아래처럼 나오면 포트가 개방된거고 이제 외부에서 접근해보면 된다!