코코딩딩

[리눅스] postgresql-12 설치하기 (기본 경로 변경) 본문

일단기록/매일기록

[리눅스] postgresql-12 설치하기 (기본 경로 변경)

겟츄 2022. 4. 22. 16:29

매일기록을 하고 싶었지만 어제 설치를 하는데 너무 많은 시간을 소비해 완벽하게 진행할 수 있는 postgresql 설치를 늦게나마 정리하고자 한다.

 

그렇게 어렵지 않은 작업이었지만 운영환경을 yum의 기본 경로 로 사용하지 않고 기본 경로를 변경해서 사용해야 했기 때문에 추가적인 작업을 진행해야 했다.

 


 

yum postgresql 설치하기 (원하는 버전)

 

postgresql을 리눅스(Centos 7)에 설치하는 방법은 공식페이지에 있는 방법을 사용한다. 요구 사항인 12버전을 설치하는 코드는 다음과 같다.

 


https://www.postgresql.org/download/linux/redhat/


# Install the repository RPM:

sudo yum install -y
https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm


# Install PostgreSQL:
sudo yum install -y postgresql12-server


# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12

 

postgresql 기본 경로 변경하기 ( 데이터 저장 디렉토리 변경) 

 

yum을 이용해 설치를 진행하면 db의 기본 설치경로는 다음과 같은데

 

/var/lib/pgsql/12/data

 

용량 문제 등의 이유로 자신이 원하는 경로에 db가 설치되길 원하는 경우 다음과 같은 작업을 진행한다.

 

 

위에서 설치한 postgreslisten을 변경해준다.


/var/lib/pgsql/버전명/data/postgresql.conf vi 편집기로 파일 open
변경전
#listen_address = 'localhost'
변경후
listen_address ='*'

pg_hba.conf 에 있는 권한을 변경해준다.


/var/lib/pgsql/
버전명/data/pg_hba.conf

// 변경전 내용은 상이할 수 있음


변경전
local all all peer
host all all 127.0.0.1/32 trust
변경후
local all all trust
host all all 0.0.0.0/0 trust

디렉토리 위치를 확인해준다.


su - postgres 로 접속한 후 psql db에 접속해서 확인 가능
postgres=# show data_directory;

파일 변경을 위해 db를 중지한다.


서비스stop | systemctl stop postgresql-12

postmaster.opts 파일을 수정한다.


/var/lib/pgsql/버전명/data/postmaster.optsvi 편집기로 연다.
/user/pgsql-9.4/bin/postgres "-D" "원하는 db 경로"

서비스 파일을 수정한다.


/etc/lib/systemd/system/postgresql-버전명.service
위의 경로가 검색을 통해 찾은 경로이고 작성자의 환경의 경로는 아래와 같다.
/etc/systemd/system/multi-user.target.wants
위의 경로에 있는 postgresql-버전명.servicevi편집기로 열고 아래와 같이 수정한다.
Environment=PGDATA=원하는 경로

지금까지 변경한 data폴더를 원하는 경로에 이동해준다.


mv /var/lib/pgsql/12/data /원하는경로/원하는경로

서비스를 재시작 해준다.


systemctl daemon-reload
systemctl start postgresql-12

 


 

위와 같은 작업들을 진행하고 dbtool (DBeaver)를 이용해 테이블을 생성하고 컬럼들을 입력하면 데이터가 옮긴 data 폴더 안에 쌓이는 것을 확인할 수 있다.

 

db 계정이 접속이 안될 경우 권한이나 방화벽 문제 등을 해결해주어야 하는데 자세한 내용은 추후에 수정하거나 따로 포스팅을 할 예정이다.