구축 & 운영/Database

[CentOS] - PostgreSQL 설치

단칸이 2022. 3. 21. 22:55

PostgreSQL 설치

PostgreSQL은 매년 메이저 버전을 출시하고 있으며, 최초 릴리즈 이후 5년간 메이저 버전을 지원합니다. PostgreSQL 공식 홈페이지에 게재된 보안 정책에 따르면, 알려진 모든 문제는 다음 릴리즈에 항상 반영되므로 최신 버전의 사용을 권장하고 있습니다.

그러나 yum 패키지 관리자에 등록된 PostgreSQL의 디폴트 버전은 9.x 이며, 이 버전은 2021. 11.11을 마지막으로 더 이상 지원하지 않고 있습니다.

현 시점에서 최신 버전은 v14.x 으로, 최신 버전 설치를 진행합니다.

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

sudo yum install -y postgresql14-server

Database를 초기화 합니다.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

PC 부팅 시 자동시작을 등록하고 서비스를 시작합니다.

sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

기본적으로 관리 권한을 갖는 'postgres' 계정이 생성되며, 이 계정의 비밀번호를 초기화 합니다.

sudo -u postgres psql

# 세미콜론(;) 필수로 작성!
ALTER USER postgres WITH PASSWORD ‘비밀번호’; 

# 쉘에서 빠져나올때는 \q 입력

기본적으로 로컬에서만 접속이 가능하도록 설정되어 있으며, 이를 외부에서도 암호 인증을 통해 접속이 가능하도록 설정을 변경합니다. ('scram-sha-256'은 PostgreSQL 연결 시 제공하는 암호의 해시 알고리즘을 의미합니다.)

sudo nano /var/lib/pgsql/14/data/pg_hba.conf

# ADDRESS 항목을 'all'로 변경

# 외부에서도 암호 인증을 통해 접속 가능하도록 IPv4 설정 변경
host 	all 	all 	all 	scram-sha-256

# 외부에서도 암호 인증을 통해 접속 가능하도록 IPv6 설정 변경
host 	all 	all 	all 	scram-sha-256

 PostgreSQL 서버에서 접속을 허용할 서버 주소를 입력합니다. 기본적으로 localhost에서만 연결 가능하도록 설정되어 있으며, '*'를 입력하면 모든 IP로부터의 연결이 허용됩니다.  (예를 들어 해외 IP에서의 접속을 차단하려면 여기에서 설정할 수 있습니다. 그러나 이는 연결의 허용/거부 정책일 뿐이며, 해당 클라이언트가 자격증명을 제공해야 하는지 여부는 앞선 설정으로 결정합니다.)

추가적으로, SSL 연결을 사용하지 않으면 'ssl = off' 주석을 해제합니다. (예전에는 pgAdmin 설치 후 DB에 연결 테스트 해보면 SSL 블라블라 하면서 안되는 경우가 있어 해제하고 확인했는데, 지금은 어떤지 모르겠네요 ^^;)

sudo nano /var/lib/pgsql/14/data/postgresql.conf

listen_addresses = ‘*’

... 중략

ssl = off

PostgreSQL 서비스를 다시 시작합니다.

sudo systemctl restart postgresql-14

PostgreSQL에서 기본적으로 사용하는 포트는 5432 이며, 해당 포트의 방화벽을 해제합니다.

sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp
sudo firewall-cmd --reload

자료 출처

 

'구축 & 운영 > Database' 카테고리의 다른 글

[MS-SQL] SSMS에서의 접속 오류 해결 방법  (0) 2021.08.12