첫 글이네요
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 ~~ 식으로 진행하시면 됩니다.
관련 궁금하신 부분들은 댓글 달아주시면 알려드리겠습니다
감사합니다 :)