DevOps, Infra

[DB]PostgreSQL 9.4 설치 (centos7)

seulseul 2021. 3. 20. 13:21

PostgreSQL Download Link

www.enterprisedb.com/downloads/postgres-postgresql-downloads

위의 링크에서 버전별,OS 별 PostgreSQL 설치파일을 다운 받을 수 있다.

PostgreSQL 다운링크

내가 필요한 버전은 PostgresSQL 9.4 였으므로 9.4.26 > Linux x86-64 를  다운받았다.

본인이 원하는 버전을 설치하면 된다. 필자는 고객사의 버전을 맞춰야했으므로 9.4를 설치했다.

 


Linux x86-64 으로 설치하면 postgresql-9.4.26-1-linux.run 파일이 다운된다.

# run 확장자로 된 *.run 종류의 파일은 대부분 쉘스크립트와 동일하다
# 파일이름 :  postgresql-9.4.26-1-linux.run 

chmod a+x postgresql-9.4.26-1-linux.run
./postgresql-9.4.26-1-linux.run

# 만일 ./postgresql-9.4.26-1-linux.run 으로 직접실행이 안된다면

sh postgresql-9.4.26-1-linux.run
# 으로 쉘( *.sh ) 파일을 실행하듯이 하면 된다.

설치를 하고나면 기본 5432 port 로 떠있는것을 확인 할 수 있다.


## PostgreSQL 외부 접속 허용하기

설치후 외부에서 DB 접속을 하려했으나 실패... 검색을 해보니 postgres DB 설정을 수정해야했다.

 

일단 기본 사용자인 postgres의  암호를 기억하고 있다면 1번 과정은 패스한다.

(1) 사용자 비밀번호 변경

# db 접속postgres cmd 명령어로 DB 접속
./{DB_HOME}/bin/psql

# 기본 user 인 postgres  의 패스워드를 설정한다. 
postgres=# ALTER USER postgres PASSWORD <new_password>;

(2) 설정 변경

'/var/lib/pgsql/data/' 경로에 pg_hba.conf file이 존재합니다.

data 경로는 설치 이름에 따라 다를 수 있습니다.

수정해야할 파일은  pg_hba.conf file 와  postgresql.conf 으로 총 2개입니다.

# pg_hba.conf 
host all all 0.0.0.0/0 password

# postgresql.conf
# 다음 문장을 찾아 "listen_address = "localhost" 아래와같이 수정합니다.
listen_address = 'localhost listen_address = '*

두 파일의 설정을 변경한 후 DB 재기동을 합니다.

외부에서 ping 이나 telnet 으로 체크해보면 외부접속이 허용된것을 확인할 수 있습니다.

 

(3) 마지막

(2)번까지 모두 변경했음에도 되지않을경우 ,,, 방화벽을 해제해줍니다.

방화벽 비활성화 : systemctl stop firewalld

방화벽 영구 비활성화 : systemctl disable firewalld

방화벽에 PostgreSQL에서 사용하는 port (default 5432)를 등록하는게 더 좋겠지만 

서비스 수준의 관리가 필요한 장비가 아니고 개발 PC 설정이므로 이렇게 마무리 하겠습니다.

 

 

 


Tip (1) PostgreSQL 버전별 기능은 PostgreSQL 공식 홈페이지에 자세히 정리 돼있다.

어떤 버전을 선택해야할지 고민된다면 아래 공홈에서 본인이 필요한 기능에 따른 버전을 확인후 설치하면 된다.

www.postgresql.org/about/featurematrix/


Tip (2) PostgreSQL 로 만들어진 데이터베이스에서 ERD 뽑는 방법

prograsshopper.tistory.com/37

ERD (Entity Relationship Diagram)를 그려보면 데이터베이스 구조를 한 눈에 알아볼 수 있다.


Tip (3) PostgreSQL 공식 문서 - 템플릿 데이터베이스

필자는 maria DB 와 oracleDB 를 사용했었는데 템플릿 데이터베이스는 처음 알게된 개념이었다.

 pg_dump 덤프를 복원할 때 유용하다고 한다.

 

postgresql.kr/docs/11/manage-ag-templatedbs.html

 

 

22.3. 템플릿 데이터베이스

22.3. 템플릿 데이터베이스 CREATE DATABASE는 실제로 기존 데이터베이스를 복사한다. 기본적으로 template1이라는 표준 시스템 데이터베이스를 복사한다. 따라서 해당 데이터베이스는 새 데이터베이스

postgresql.kr

 

'DevOps, Infra' 카테고리의 다른 글

[Jenkins] 빌드 자동화 - polling  (0) 2022.12.27
[Jenkins] 플러그인 설치 및 준비  (0) 2022.12.27
Git 브랜치 전략 3가지  (0) 2022.12.27
[skaffold] Skaffold , kustomize with Spring Boot  (0) 2022.12.27
Jenkins Install for WSL  (0) 2022.12.27