https://saju.choeum.com/pos/front/sjuF0101.do?ref=s_BwgZAV1CS2tVJUAFBwEHCjMAAAAAbUJXUg
처음 사주 - 인생 7포인트
2026년 성공하는 시기·성향·연애운·금전운·10년 운까지 한눈에
saju.choeum.com
현재 CentOS Stream 9 에서 dnf install postgresql 하면 13.* 버전이 내려오는데 postgresql 홈페이지에는 15.*버전까지 올라와 있다. 13버전은 좀 뒤쳐지는 것 같고, 15버전는 너무 일찍 도입하는 느낌이 있으므로, 14버전을 설치해 보도록 하겠다. Database는 dnf 로 자동 업데이트가 되지 않는 것이 좋다. 왜냐면 DB의 특성상 메이저 버전이 올라가 버리면 어떤 문제를 야기할지 알 수 없기 때문이고, 만약 그 영향으로 Data 가 오염되면 복구가 힘들다. 아래 참조의 좋은 외국의 설치 방법 링크를 찾았는데, 한번 따라해 보겠다.
현재 dnf 로 받을 수 있는 postgresql 목록 확인
dnf module list postgresql
Redhat 최신버전 Postgresql 설치 (현재 14버전이 내려온다)
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Default Postgresql 레파지토리는 비활성화 한다. 시간이 좀 많이 걸리는데, 절대 중단하지 말고 기다려라.
dnf -qy module disable postgresql
설치를 시작한다.
dnf install postgresql14-server -y
DB를 초기화 한다.
/usr/pgsql-14/bin/postgresql-14-setup initdb
DB를 기동한다. 자동 시작도 등록한다.
systemctl start postgresql-14
systemctl enable postgresql-14
잘 돌고 있나 확인하자.
systemctl status postgresql-14
5432포트로 Listen 하고 있는 것을 확인해보자.
ss -antpl | grep -i postmaster
psql 쉘을 실행한다. 방금 init 한 DB를 확인해보자.
sudo -u postgres psql
postgres-# \l
데이터베이스 목록
이름 | 소유주 | 인코딩 | Collate | Ctype | 액세스 권한
-----------+----------+--------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 |
template0 | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3개 행)
버전을 확인해보자.
postgres=# SELECT version(); version ----------------------------------------------------------------------------------------------------------
PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2), 64-bit (1개 행)
기본 계정 암호를 설정한다. 기본 계정은 postgres 이다.
postgres=# \password
Enter new password:
Enter it again:
postgres=# \q
exit
기본적으로는, 다른 IP 에서 DB접근을 못하게 되어 있다. WAS 등 다른 IP 에서도 DB를 접근할 수 있게 해보자. 주석을 풀고 '*' 로 수정한다. 만약 포트를 바꾸려면 아래 port 를 주석을 풀고 지정하면 된다.
vi /var/lib/pgsql/14/data/postgresql.conf
listen_addresses = '*'
port = 5432
한군데 더 바꿔야 한다. 아래 굵은 글씨 부분만 0.0.0.0/0 으로 고치면 된다.
다른 글에서는 METHOD 를 모두 MD5 로 고치라고 하는데, scram-sha-256 은 최신 버전의 강력한 암호화 방식이므로 그대로 두도록 하고 맨 위줄만 peer → md5 로 고치도록 한다. (이 부분은 dump 를 복원하는 psql 등에서 사용한다.)
vi /var/lib/pgsql/14/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 0.0.0.0/0 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
자 그럼 서버를 재기동한다.
systemctl restart postgres-14
방화벽의 5432 포트를 열어준다.
firewall-cmd --permanent --zone=public --add-port=5432/tcp
firewall-cmd --reload
SQL Manager 를 다운로드 받아서 아래와 같이 접속을 테스트 해본다.
SQL Manager for PostgreSQL Freeware (full installation package) 를 받으면 된다.
무료 버전은 DB접속을 3개까지 등록할 수 있는 제약이 있고 나머지는 동일하다. 이 정도면 개발하는데는 충분하다.
https://www.sqlmanager.net/products/postgresql/manager/download
Product files for
Title Version Date Size Download link SQL Manager for PostgreSQL (full installation package) 6.4.1.56163 2022-11-11 136.13 MB Download SQL Manager for PostgreSQL Freeware (full installation package) 6.4.1.56163 2022-11-11 136.17 MB Download User's Manual
www.sqlmanager.net


접속 테스트가 성공하였다.
DUMP 복원 방법 (pg_restore 명령을 이용해서 복원해야 한다)
*. root 계정으로 작업해도 된다.
-d : DB명
-U : 사용자 명
pg_restore -d test_db -U test < /tmp/database.dump
.pgpass 활용방법
# cd /root
# vi .pgpass
host:port:db_name:user_name:password
# chmod 600 .pgpass
예) 127.0.0.1:5432:test_db:test_user:password!
이렇게 저장을 해두면 덤프 뜰때나 psql 접속시에 비밀번호 없이 통과가 가능하다.
덤프를 스케쥴러에 등록해서 주기적으로 뜨는 경우 sh 파일에 암호를 남겨놓으면 보안상 매우 취약하게 되기 때문에 이 방법을 권장한다.
참조 : https://cloudinfrastructureservices.co.uk/install-postgresql-on-centos-stream-9-server/
도움이 되었다면 공감과 댓글 부탁드립니다.
https://saju.choeum.com/pos/front/sjuF0101.do?ref=s_BwgZAV1CS2tVJUAFBwEHCjMAAAAAbUJXUg
처음 사주 - 인생 7포인트
2026년 성공하는 시기·성향·연애운·금전운·10년 운까지 한눈에
saju.choeum.com
'Linux > CentOS Stream 9' 카테고리의 다른 글
| Linux - Centos Stream 9 - fdisk로 추가 디스크 파티션 잡기 (0) | 2023.02.21 |
|---|---|
| Linux CentOS Stream 9 - Jenkins Install 설치 (0) | 2023.02.18 |
| Linux Centos Stream 9 - Apache Tomcat 연동 (mod_jk) - Selinux 문제해결 (0) | 2023.02.16 |
| Linux CentOS Stream 9 - Tomcat 설치 (0) | 2023.02.16 |
| Linux Centos Stream 9 - phpmyadmin 설치 (0) | 2023.02.11 |