Server/Linux

Ubuntu Postgresql(v12) 삭제 및 설치 + 외부 접속 설정

범데이 2021. 12. 30. 00:35

본 포스팅은 Ubuntu 20.04 운영체제를 기준으로 작성되었습니다.

 

 

 

(설치 가이드를 보고자 하면, 3번 항목부터 보면 된다.)

 

1. 데이터 백업(가장 중요)

pg_dumpall이나 pg_dump 명령어를 사용해 데이터를 백업한다.

(명령어 사용법은 구글 검색)

 

 

2. PostgreSQL과 관련된 패키지 전체 삭제

sudo apt-get --purge remove postgresql\*
dpkg -l | grep postgres

 

3. PostgreSQL12를 Ubuntu 20.04에 설치

공식 인스톨 가이드 - https://www.postgresql.org/download/linux/ubuntu/

 

pgdg.list 파일을 만들고 vi 편집기로 연다

sudo touch /etc/apt/sources.list.d/pgdg.list
sudo vi /etc/apt/sources.list.d/pgdg.list

 

pgdg.list 파일에 아래 내용을 넣고 저장한다.

deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main

 

아래 커맨드를 차례대로 실행하면 설치까지 끝난다.

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

 

4. 유저 추가

 

postgres유저로 바꾼 후, 새로운 유저를 추가한다.

sudo su - postgres
createuser --pwprompt --interactive <USER_NAME>

위의 커맨드를 입력 후 패스워드를 두번 입력한다.

 

Shall the new role be a superuser? (y/n) y

y를 입력해 관리자 권한을 준다.

 

 

접속 테스트

psql -h localhost -U <USER_NAME> -d postgres

 

5. 외부 접속 설정

postgresql.conf 파일을 수정

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

 

아래 부분을 찾아 주석 해제하고 localhost를 *로 바꾼다.

(특정 IP에서만 접속할 경우에는 해당 IP주소를 쓰면 된다.)

 

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

위의 설정이 되지 않았을 경우는, DB 접속시 아래의 에러가 발생하게 된다.

could not connect to server: Connection refused

 

 

pg_hba.conf 파일을 수정

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

 

접속 인증을 할 IP범위를 설정하기 위해서 아래 내용을 추가한다.

(내부 네트워크일 경우 아래 내용에서 아이피 정도만 바꾸면 된다)

host    all             all             192.168.1.1/24          md5

혹은, 모든 IP주소에 대한 접근을 허용하기 위해서는 아래와 같이 설정한다.

host    all             all             0.0.0.0/0          md5

위의 설정이 되지 않았을 경우는, DB 접속시 아래의 에러가 발생하게 된다.

FATAL: no pg_hba.conf entry for host "<HOST_IP>", user "<USER_NAME>", database "<DATABASE_NAME>", SSL off error

 

 

설정을 마친 후 Postgresql 서비스 재시작

sudo systemctl restart postgresql

 

 

 


#References

 

반응형