Fedora 40 또는 39 Linux에 PostgreSQL 14를 설치하는 방법

PostgreSQL 14는 견고성, 확장성 및 광범위한 기능 세트로 유명한 오픈 소스 관계형 데이터베이스 관리 시스템입니다. PostgreSQL 14에 도입된 주요 기능 중 하나는 증분 정렬을 처리하는 기능으로, 이는 특정 워크로드에 대한 쿼리 성능을 크게 향상시켰습니다. 또한 이번 릴리스에서는 병렬 처리, 진공화 및 JSON 처리가 향상되어 기업 및 개발 환경에 적합한 선택이 되었습니다. 최신 릴리스보다 몇 가지 버전이 뒤떨어져 있지만 PostgreSQL 14는 여전히 안정적이고 널리 지원되는 옵션입니다.

명령줄 터미널을 사용하여 Fedora 40 또는 39에 PostgreSQL 14를 설치하려면 PostgreSQL RPM 빌드에서 직접 가져오고 설치할 수 있습니다. 이 방법을 사용하면 최신 버전을 보유하고 향후 업그레이드가 간편해집니다.

PostgreSQL 14 설치 전에 Fedora 업데이트

시작하려면 Fedora 시스템을 업데이트하여 모든 패키지가 최신 상태인지 확인하세요. 이 단계는 PostgreSQL 설치 중 잠재적인 충돌을 방지하는 데 도움이 됩니다. 아래 명령을 실행하십시오.

sudo dnf update --refresh

PostgreSQL RPM GPG 키 저장소 가져오기

PostgreSQL 저장소를 가져오는 것부터 시작하세요. 이 작업을 수행하면 최신 PostgreSQL 버전에 대한 액세스가 보장됩니다. Fedora Linux 버전에 해당하는 리포지토리를 선택하고 가져옵니다.

PostgreSQL 14 가져오기

참고: Fedora 배포 버전에 맞는 올바른 버전을 가져와야 합니다.

Fedora 40의 경우 다음 명령을 사용하십시오.

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Fedora 39의 경우 명령이 약간 다릅니다.

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm

기본 PostgreSQL 모듈 비활성화(해당되는 경우)

Fedora의 기본 리포지토리에는 종종 PostgreSQL이 모듈로 포함되어 있습니다. PostgreSQL 리포지토리에서 설치 우선순위를 지정하려면 이 기본 모듈을 비활성화하는 것이 좋습니다. 이렇게 하려면 다음 명령을 사용하십시오.

sudo dnf -qy module disable postgresql

PostgreSQL 14 설치 마무리

PostgreSQL 14 설치를 진행하세요.

.PostgreSQL 14 서버와 해당 문서를 설치하려면 다음 명령을 사용하십시오.

sudo dnf install postgresql14-server postgresql14-docs -y

또한 다음과 같이 개발 패키지를 설치할 수 있습니다.

sudo dnf install postgresql14-devel

마지막으로 일반적으로 사용되는 추가 모듈, 바이너리 및 라이브러리를 설치할 수 있습니다.

sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit

PostgreSQL 14 데이터베이스 초기화

설치한 후에는 다음 명령을 실행하여 데이터베이스를 초기화해야 합니다. 이를 수행하지 않으면 PostgreSQL이 작동하지 않게 됩니다.

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

PostgreSQL 14 시스템 서비스 활성화

기본적으로 PostgreSQL은 활성화되지 않습니다. 서비스를 즉시 시작하고 시스템 부팅 시 시작하려면 다음 명령을 사용하십시오.

sudo systemctl enable postgresql-14 --now

PostgreSQL 14 설치 확인

그런 다음, 다음 명령을 사용하여 소프트웨어가 오류 없이 설치 및 활성화되었는지 상태를 확인합니다.

systemctl status postgresql-14

PostgreSQL 14용 시스템 서비스 명령

PostgreSQL 14 서비스 관리

PostgreSQL 데이터베이스 서버는 Fedora에서 "postgresql-14"라는 시스템 서비스로 작동합니다. 시스템 관리자는 일상적인 유지 관리 및 문제 해결에 필수적인 일련의 systemd 명령을 사용하여 이 서비스를 관리할 수 있습니다.

PostgreSQL 14 서버 중지

유지 관리 또는 구성 변경을 위해 PostgreSQL 서비스를 중지하려면 다음 명령을 사용합니다.

sudo systemctl stop postgresql-14

PostgreSQL 14 서버 시작

특히 중지 또는 초기 설치 후에 PostgreSQL 서비스를 시작하려면 다음 명령을 사용하십시오.

sudo systemctl start postgresql-14

PostgreSQL 14 서버 다시 시작

재시작 명령은 새 구성을 적용하거나 PostgreSQL 서비스를 재설정해야 하는 경우 유용합니다. 한 번의 작업으로 서비스를 중지했다가 시작합니다.

sudo systemctl restart postgresql-14

PostgreSQL 14 서버 다시 로드

reload 명령은 데이터베이스를 중지하지 않고 구성 변경 사항을 적용하는 데 이상적입니다. 데이터베이스 작업을 중단하지 않고 서비스를 새로 고칩니다.

sudo systemctl reload postgresql-14

PostgreSQL 14 서비스 상태 확인

PostgreSQL 서비스의 작동 상태를 확인하려면 이 명령을 사용하십시오. 활성 상태, 유휴 상태 또는 문제 발생 여부를 포함하여 서비스 상태에 대한 정보를 제공합니다.

systemctl status postgresql-14

PostgreSQL 14 구성

Postgres 14 계정으로 전환

Postgres 14 계정에 액세스

PostgreSQL을 설치하는 동안 'postgres'라는 사용자 계정이 자동으로 생성됩니다. 이 계정은 슈퍼유저 권한을 소유한 기본 Postgres 역할과 연결되어 있습니다. PostgreSQL 데이터베이스에 액세스하려면 다음 명령을 사용하여 'postgres' 계정으로 전환하세요.

sudo -i -u postgres

PostgreSQL 14 프롬프트 입력

'postgres' 사용자로 전환한 후 psql을 입력하여 PostgreSQL 프롬프트에 직접 액세스합니다. 성공적으로 연결되면 터미널 프롬프트가 postgres=#으로 변경되어 데이터베이스에 대한 활성 연결을 나타냅니다.

PostgreSQL 데이터베이스를 종료하려면 다음을 입력하면 됩니다.

psql

PostgreSQL 14에 액세스하기 위한 대체 방법

직접 액세스를 위해 Sudo 사용

또는 다음을 사용하여 계정을 전환하지 않고 PostgreSQL 데이터베이스와 상호 작용합니다.

exit

Postgres 계정 전환의 대안

사용자 계정을 변경하지 않고 Postgres 데이터베이스와 상호 작용하는 다른 방법은 sudo 명령을 사용하여 직접 연결하는 것입니다. 다음을 입력하여 이 작업을 수행할 수 있습니다.

sudo -u postgres psql

이 명령은 추가 터미널 명령을 우회하므로 데이터베이스와의 빠른 상호 작용에 효율적입니다.

종료하려면 첫 번째 방법과 마찬가지로 종료를 입력합니다.

exit

PostgreSQL 14로 사용자 및 데이터베이스 생성

새 사용자 역할 생성

createrole 권한이 있는 수퍼유저와 역할만 새 역할을 생성할 수 있습니다. 사용자를 생성하려면 다음 명령을 사용하십시오.

sudo su - postgres -c "createuser <name>"

바꾸다 원하는 사용자 이름으로.

새 데이터베이스 생성

다음으로 새로 생성된 사용자에 대한 PostgreSQL 데이터베이스를 생성합니다.

sudo su - postgres -c "createdb <namedb>"

바꾸다 원하는 데이터베이스 이름으로.

권한 부여

새 데이터베이스에서 새 사용자에게 권한을 부여하려면 먼저 PostgreSQL 데이터베이스에 슈퍼유저로 연결합니다.

sudo -u postgres psql

그런 다음 새 사용자에게 모든 권한을 부여합니다.

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

바꾸다 데이터베이스 이름과 사용자 이름으로. 종료하려면 종료를 입력하세요.

exit

PostgreSQL 14용 방화벽 구성

PostgreSQL 14에 대한 방화벽 규칙 설정

PostgreSQL 보안에는 서비스 설치 및 실행 이상의 작업이 포함됩니다. 네트워크 액세스 제어를 효과적으로 구성하는 것이 중요합니다. 이는 데이터베이스를 보호하고 합법적인 트래픽만 데이터베이스에 도달하도록 보장합니다. PostgreSQL을 보호하기 위해 Fedora의 동적 방화벽 관리자인 Firewalld를 설정하는 방법을 살펴보겠습니다.

PostgreSQL용 방화벽 영역 생성

먼저, PostgreSQL용 Firewalld에 전용 영역을 만듭니다. 이 접근 방식을 사용하면 PostgreSQL과 관련된 규칙 관리를 보다 세부적으로 제어하고 명확하게 할 수 있습니다.

sudo firewall-cmd --permanent --new-zone=postgres

이 명령은 더 쉬운 관리를 위해 PostgreSQL 관련 방화벽 규칙을 격리하는 'postgres' 영역을 설정합니다.

알려진 IP 주소에 대한 액세스 제한

단일 IP 주소로부터의 액세스 허용

하나의 클라이언트 또는 서버만 PostgreSQL에 액세스해야 하는 시나리오의 경우:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4

1.2.3.4를 데이터베이스에 액세스해야 하는 특정 IP 주소로 바꿉니다.

서브넷 허용

기업 네트워크와 같은 환경에서는 전체 서브넷을 허용해야 할 수도 있습니다.

sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24

여기서 192.168.1.0/24는 서브넷을 나타냅니다. 원하는 네트워크 범위와 일치하도록 이 값을 조정하십시오.

여러 특정 IP에 대한 액세스 권한 부여

액세스가 필요한 알려진 여러 IP가 있는 시나리오의 경우:

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5

각 IP 주소에 대해 이 명령을 반복합니다.

PostgreSQL 14에 대한 포트 액세스 관리

기본 PostgreSQL 포트 구성

기본 포트를 사용하는 표준 설치의 경우:

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
포트 구성 사용자 정의

PostgreSQL이 비표준 포트(예: 5433)에서 작동하는 경우:

sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp

특정 PostgreSQL 구성에 따라 포트 번호를 변경하십시오.

새로운 방화벽 규칙 구현 및 확인

변경 사항 적용

새 규칙을 활성화하려면 방화벽을 다시 로드하십시오.

sudo firewall-cmd --reload

이 단계를 수행하면 새 구성이 즉시 적용됩니다.

구성 확인

구성 후에는 'postgres' 영역에 설정된 규칙을 검토하는 것이 좋습니다.

sudo firewall-cmd --list-all --zone=postgres

이 명령은 'postgres' 영역의 모든 활성 규칙을 표시하여 setup.exp를 확인할 수 있습니다.

PostgreSQL 14에 대한 원격 액세스 구성

원격 액세스를 위한 청취 인터페이스 설정

PostgreSQL 구성 수정

PostgreSQL에 대한 원격 액세스를 활성화하려면 postgresql need.conf 파일에서 인터페이스 설정을 조정해야 합니다. 이 프로세스를 통해 PostgreSQL은 다양한 소스로부터의 연결을 수락할 수 있습니다.

이전 섹션에 설명된 대로 원격 액세스를 허용하도록 FirewallD 설정이 제대로 되어 있는지 확인하세요.

구성 파일에 액세스

PostgreSQL 14의 구성을 수정하려면 nano 텍스트 편집기를 사용하십시오.

sudo nano /var/lib/pgsql/14/data/postgresql.conf
청취 주소 편집

"연결 설정" 섹션에서 Listen_addresses를 'localhost'에서 요구 사항으로 변경합니다.

  • 모든 인터페이스에서 수신 대기: 모든 소스의 연결을 수락하려면 Listen_addresses를 '*'로 설정합니다.
listen_addresses = '*'
  • 특정 인터페이스에서 수신 대기: 특정 인터페이스에 대한 연결을 제한하려면 IP 주소를 지정합니다.
listen_addresses = '192.168.1.100'

편집이 끝나면 파일을 저장(Ctrl + O, Enter)하고 종료(Ctrl + X)하세요.

PostgreSQL 14 서비스 다시 시작

PostgreSQL 서비스를 다시 시작하여 변경 사항을 적용합니다.

sudo systemctl restart postgresql-14

수신 포트 확인

ss 유틸리티를 사용하여 PostgreSQL이 지정된 포트에서 수신 대기 중인지 확인하세요.

ss -nlt | grep 5432

성공하면 터미널 포트에 포트가 표시됩니다.

pg_hba.conf의 고급 원격 연결 설정

pg_hba.conf 파일에서 액세스 조정

원격 연결을 세밀하게 제어하기 위해 pg_hba.conf 파일은 다양한 사용자 정의 옵션을 제공합니다.

pg_hba.conf 편집

pg_hba.conf 파일을 엽니다:

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Fedora Linux의 PostgreSQL 14용 pg_hba 구성 파일
Fedora Linux의 PostgreSQL 14에 대한 pg_hba 구성 파일의 예시 스크린샷
원격 액세스 규칙 구성
특정 사용자 및 데이터베이스 허용

특정 IP 주소에서 특정 사용자 및 데이터베이스에 대한 액세스를 제한하려면 다음을 수행하십시오.

호스트 mydatabase myuser 192.168.1.100/32 md5
서브넷 허용

전체 서브넷과 같은 더 광범위한 액세스의 경우:

모두 호스트 모두 192.168.1.0/24 md5
다양한 인증 방법 사용

귀하의 환경에 적합한 인증 방법을 선택하세요. 비밀번호 기반 인증의 경우:

모두 호스트 0.0.0.0/0 md5

신뢰 인증의 경우(보안 위험에 유의):

모두 호스트 모두 0.0.0.0/0 신뢰

원하는 규칙을 구성한 후 편집기를 저장하고 종료합니다.

변경 사항 적용 및 확인

PostgreSQL을 다시 시작하여 새 구성을 구현합니다.

sudo systemctl restart postgresql-14

다음을 사용하여 pg_hba.conf의 효과적인 설정을 확인하십시오.

cat /var/lib/pgsql/14/data/pg_hba.conf

PostgreSQL 14용 SELinux 구성

Fedora에서 PostgreSQL 14를 구성할 때 SELinux(Security-Enhanced Linux)를 올바르게 설정하는 것이 중요합니다. SELinux는 액세스 제어 정책을 시행하여 보안 계층을 추가합니다. 구성이 잘못되면 액세스 거부 또는 서비스 중단과 같은 일반적인 문제가 발생할 수 있습니다.

문제 해결을 위해 SELinux를 허용 모드로 설정

SELinux 모드 임시 조정

PostgreSQL이 올바르게 시작되거나 작동하는 데 문제가 발생하는 경우 일시적으로 SELinux를 '허용' 모드로 설정하는 것이 좋습니다. 이 모드는 '강제' 모드에서 차단되는 작업을 허용하지만 검토를 위해 기록합니다.

sudo setenforce 0

AVC 거부에 대한 로그 모니터링

AVC(액세스 벡터 캐시) 거부에 대한 SELinux 로그를 확인하세요.

sudo restorecon -Rv /var/lib/pgsql/14/data/

이 명령은 PostgreSQL이 올바르게 작동하지 못하게 하는 SELinux 정책을 식별하는 데 도움이 됩니다.

PostgreSQL 14에 대한 SELinux 정책 구성

기본 SELinux 컨텍스트 복원

파일에 올바른 SELinux 컨텍스트가 있는지 확인하려면 Restorecon 명령을 사용하십시오. PostgreSQL 디렉터리 또는 파일의 잘못된 컨텍스트로 인해 액세스 문제가 발생할 수 있습니다.

sudo setsebool -P postgresql_can_rnetwork 1

이 명령은 postgresql_can_rnetwork 부울을 활성화하여 네트워크 연결을 허용합니다.

고급 SELinux 구성

SELinux 정책 사용자 정의

PostgreSQL이 다른 서비스 또는 사용자 정의 포트와 상호 작용하는 경우와 같이 보다 복잡한 설정에서는 사용자 정의 SELinux 정책을 생성해야 할 수 있습니다. audit2allow 도구를 활용하여 특정 요구 사항에 따라 사용자 정의 정책 모듈을 생성하세요.

사용자 정의 정책 적용

사용자 정의 정책을 생성한 후 다음을 사용하여 적용하십시오.

sudo semodule -i my_postgresql.pp

my_postgresql.pp를 정책 파일 이름으로 바꿉니다.

SELinux 설정 확인

SELinux 상태 확인

SELinux 상태가 PostgreSQL 설치에 맞게 올바르게 설정되었는지 확인하세요.

sestatus

파일 컨텍스트 검증

PostgreSQL과 관련된 파일 및 디렉터리에 적절한 SELinux 컨텍스트가 있는지 확인하세요.

ls -Z /var/lib/pgsql/14/data/

결론

PostgreSQL 14가 Fedora 시스템에 성공적으로 설치되면 데이터베이스 요구 사항에 맞는 고급 기능과 강력한 성능을 활용할 수 있습니다. PostgreSQL RPM 빌드의 업데이트와 향후 업그레이드를 정기적으로 확인하여 시스템을 최신 상태로 유지하세요.

PostgreSQL 사용에 대한 자세한 내용을 보려면 공식 웹사이트를 방문하세요. 선적 서류 비치.

Joshua James

코멘트를 남겨주세요