DBA/PosrtgreSQL

Linux(CentOS 7.9) PostgreSQL(v.14.2) 설치 및 설정

시골개발자 2022. 11. 23. 17:14
반응형

첫 글이네요

PostgreSQL 설치 및 설정 과정을 정리해보았습니다.

 

 

DB에 대해 아무것도 모를 때 정리했던 내용들이니 귀엽게 봐주세요(다시 다룰 일이 있으면 업데이트 하겠습니다)

 

이 글은 yum, apt-get 등을 이용한 rpm 설치가 아닌, 패키지(설치파일)을 직접 사용한 설치/설정 프로세스 관련 글입니다.

 

환경은 다음과 같습니다

  - OS 종류 : CentOS 7.9

  - 버전 : Postgresql _v14.2

 

1. 필수 라이브러리 설치

  - readline-devel

  - zlib-devel

 

모두 yum을 사용해서 install 해도 상관 없으나, 직접 다운로드 하기 위해서는 

readline의 경우 readline-7.0.tgz

zlib-devel의 경우 zlib-1.2.11.tgz

을 압축해제 후, 소스컴파일 해서 설치했었습니다.(필자가 yum 설치를 싫어함)

 

방법은 대부분 configure 후, make/make install 하면 되는데, 관련 내용은 리서치 하시거나, 댓글로 달아주시면 알려드리겠습니다.

 

참고로 저는 항상 정적 라이브러리를 추출하기 위해 --disable-static 옵션을 사용해서 설치합니다.

 

앞으로의 글들은 대부분 소스컴파일해서 설치기준입니다.

wget을 통해 링크 다운로드를 하셔도 되고, sftp를 통해 파일을 가져오셔서 설치하시면 됩니다.

참고로 sftp는 filezilla 사용했습니다.

 

사실 당장 이 글만 해도 yum으로 postgresql을 설치해도 되는데, 굳이 패키지로 직접 설치를 하기 위해 글을 읽고 계신거겠죠(네트워크가 불가한 서버환경이라던지)

 

2. 설치 순서

자, 설치 준비는 끝났습니다.

 

[root@localhost /tmp]# tar –xvzf postgresql-14.2.tar.gz

[root@localhost /tmp]# cd postgresql-14.2

[root@localhost postgresql-14.2]# ./configure prefix=(DIR) 

[root@localhost postgresql-14.2]# make && make install

[root@localhost postgresql-14.2]# ls –al /usr/local/pgsql

 

3번째 라인에 DIR은 설치 디렉토리 지정해주시면 됩니다.

 

3. 설정 및 가동

설치는 끝났습니다.

이제 DB를 생성해주고 설정 및 가동에 대해 간단히 알려드리겠습니다.

 

먼저 initdb를 통해 db를 생성해주어야 합니다.

 

[root@localhost postgresql-14.2]# su – user_name -c "initdb_dir/initdb -D data_dir"

 

user_name은 db를 사용할 권한을 줄 계정,

initdb_dir 은 initdb가 있는 디렉토리,

data_dir 은 data가 저장 될 디렉토리 입니다.

위의 명령어의 경우, root 계정에서 진행하는 명령어기 때문에, su - user -c 를 사용하여 계정 전환 없이 설치되도록 했습니다.

-- root 계정으로 설치가 불가능해서 그랬던 것으로 기억합니다.

 

설정파일의 경우 pg_hba.conf, postgresql.conf가 있는데, pg_hba.conf의 경우는 접근에 관한 설정이고, postgresql.conf는 postgresql 자체의 설정입니다.

 

따라서 pg_hba.conf 에서는 

 

# TYPE DATABASE USER ADDRESS METHOD

host all all 0.0.0.0/0 trust

# IPv4 local connections:

host all all 127.0.0.1/32 trust

# IPv6 local connections:

host all all ::1/128 trust

# Allow replication connections from localhost, by a user with the

# replication privilege.

host replication all 127.0.0.1/32 trust

host replication all ::1/128 trust

 

모두 trust로 진행했습니다. (테스트 서버이기 때문에)

암호 인증을 하실려면, postgresql 암호를 설정한 후에, 해당 라인에 md5를 입력하시면 됩니다.

0.0.0.0은 모든 접속에 대한 설정입니다.

 

postgresql.conf에서는 

listen_addresses = '*' 와 port = 5432 만 주석처리 해제/설정해주었습니다.

 

물론 설정들은 상황에 맞추어 바꿔주면 되는 부분입니다.

 

4. 실행

[root@localhost postgresql-14.2]# cd bin

[root@localhost bin]# ./pg_ctl -D /data dir/ -l /logfile dir/ start

 

postgresql이 설치된 디렉토리 내부의 bin 디렉토리의 pg_ctl을 통하여 시작해주면 됩니다.

중지할 때나 재시작할 경우에는 pg_ctl stop/restart ~~ 식으로 진행하시면 됩니다.

 

관련 궁금하신 부분들은 댓글 달아주시면 알려드리겠습니다

감사합니다 :)

반응형