PostgreSQL DB 설치

8. PostgreSQL DB 설치

1.1  도커 컨테이너 생성

  • 간단하게 패키지로 설치 할 수도 있지만 PostgreSQL은 기본 기능 이외에 부가적인 확장팩이 많이 존재한다. 패키지로 설치하게 되면 실무에서 운영 중에 특정 기능이 필요해서 확장팩을 설치 해야 하는데 패키지로 설치 하게 되면 방법이 없을 수도 있다. 그래서 좀 귀찮기는 하지만 소스 컴파일로 설치 하겠다. 확장팩 종류에는 패스워드 암호화 모듈, 크론 잡 같은 배치 스케줄러, postgis등 엄청 많다. 나중에 혹시 모를 확장 기능에 대비해서 소스 컴파일 설치를 추천한다.
  • PosrgreSQL DB 설치를 위한 우분투 도커 이미지를 이용해서 컨테이너 생성

docker run -d --name postgresql15.3 -p 5432:5432 --privileged=true --hostname PostgreSql --restart always --net net-cbw --ip 10.10.0.41 -v /app/pgdata:/data/pgdata  cbwstar/ubuntu:22.04 /sbin/init

  • docker ps -a  (생성 확인)

1.2  컨테이너에 PosrgreSQL DB 설치

  1. docker exec -it postgresql15.3 bash

 

  1. postgresql 사용자 계정 생성

- $ adduser postgres

  1. 사용자 암호 생성

            -$ passwd postgres

  1. 사용자 전환 : su - postgres

  1. PostgreSQL 다운로드

  • wget 유틸이 없다고 다운이 안되네요. root 계정으로 전환하여 wget 유틸을 설치 합시다.
  • exit 
  • apt install wget

  • 설치가 잘 되었습니다.

그냥 root 계정에서 설치 합시다. 다운 받을 폴더로 이동 합니다.

다운이 받아 졌습니다.

  • 압축을 푼다.
  • $ root@PostgreSql:/home/postgres# tar xvzf ./postgresql-15.3.tar.gz

 

  1. 사전 패키지 설치
  • 소스 컴파일에 필요한 유틸 설치
  • $ apt update
  • $ apt-get install libreadline-dev
  • $ apt-get install zlib1g-dev
  • $ apt-get install libssl-dev openssl
  • $ apt-get install python3-dev

 

  1. 컴파일 설치
  • $  ./configure --prefix=//app/postgresql-15.3 --with-python --with-openssl --sysconfdir=/app/postgresql-15.3/conf

         /* configure 명령어 실행시 에러가 없을 경우 make 명령을 실행한다. */

  • $ make world  /* pc 사양에 따라서 수분 내지 수십분 걸림 */
  • $ make install-docs
  • $ make install-world

 

  1. 소유권 변경
  • $ chown -R postgres:postgres /app/postgresql-15.3/
  • $ chown -R postgres:postgres /data
  1. 시스템 한글 언어 설정
  • $ locale
  • $ localectl list-locales 

  • $ 한글팩 설치 하기 : apt install language-pack-ko

  • $ 설치 확인 :  localectl list-locales 
  • $ 시스템 언어를 한글로 설정하기 : localectl set-locale LANG=ko_KR.utf8
  • $ 시스템 언어 설정 확인하기 : localectl

     /* 한글 설정이 끝났습니다. */

  1. 계정 전환(postgresql 사용자로)
  • $ su  - postgres
  • 계정 환경 설정

  • vi .profile  (파일 편집)

       

LANG=ko_KR.UTF-8

PGHOME=/app/postgresql-15.3
PGDATA=/data/pgdata
PATH=$PGHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
LD_LIBRARY_PATH=$PGHOME/lib
PGDATABASE=postgres

export PGHOME
export PGDATA
export PATH
export LD_LIBRARY_PATH
export PGDATABASE

저장 후

  • $ source .profile       (프로파일 서버 적용)



1.3  클러스터 db 생성

  1. initdb 명령을 이용하여 생성

initdb -D $PGDATA --encoding='utf8' --locale='ko_KR.UTF-8' --lc-collate='ko_KR.UTF-8' --lc-ctype='ko_KR.UTF-8' 

 

  • db가 성공적으로 만들어 졌습니다.
  1. postgresql 기동 명령어
  • 실행 : pg_ctl start
  • 상태확인 : pg_ctl status
  • 종료 : pg_ctl stop
  • 프로세스 확인 : ps -ef|grep postgres
  1. 외부에서 접속 할수 있도록 접속 허용 아이피 추가
  • $ cd /data/pgdata
  • vi pg_hba.conf

            /* 아래에 접속 허용 아이피 추가 */

        host    all        all       10.10.0.0/24          md5

        host    all        all       192.168.0.0/24       md5

 

  1. 동시접속 커넥션 설정

- $ vi postgresql.conf

max_connections = 500 
#listen_addresses = 'localhost'  로 주석되어 있는 부분을 아래와 같이 수정하여 저장후 재기동한다.
listen_addresses = '*'

 

  1. db 서버 재기동
  • $ pg_ctl restart

  • restart 명령은 서버를 중지한 후에 다시 시작한다.

1.4  DB 접속

  1. psql (명령어로 접속한다.)

  1. 데이타베이스 목록 확인 : $ \l (소문자 영어엘이다) 
  2. 확장팩 설치 확인

select* from pg_catalog.pg_available_extensions;

확장팩 49개가 설치 되어 있다.

필요시 확장팩은 인터넷에서 소스를 다운 받아서 컴파일 해서 설치할 수 있다.

  1. 패스워드 설정
  • $ alter user postgres with password 'postgres';



1.5  외부 접속 확인

  1. DBeaver 통한 외부 접속

  1. DB 연결 설정
  • Host : 192.168.0.120
  • Port : 5432
  • Database : postgres
  • Username : postgres
  • Password : postgres

 



/* 접속이 잘 되었습니다. */


'IT > 프로그램' 카테고리의 다른 글

리눅스 SVN 설치  (0) 2024.01.30
오라클 DB 설치  (0) 2024.01.30
마리아 DB 설치  (0) 2024.01.30
Wildfly 복제  (0) 2024.01.30
아파치 Wildfly 연동  (0) 2024.01.30