기계적 인조 인간

centos 8에 postgresql을 설치하는 방법

Red Hat, CentOS & Fedora: Which Is Best for You?

Red Hat, CentOS & Fedora: Which Is Best for You?

차례:

Anonim

PostgreSQL 또는 Postgres는 결함 허용 환경 또는 복잡한 애플리케이션을 구축 할 수있는 여러 가지 고급 기능을 갖춘 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다.

이 안내서에서는 CentOS 8에 PostgreSQL 데이터베이스 서버를 설치하는 방법에 대해 설명합니다. 설치할 버전을 선택하기 전에 응용 프로그램이이를 지원하는지 확인하십시오.

PostgreSQL 데이터베이스 관리의 기본 사항도 살펴 봅니다.

전제 조건

패키지를 설치하려면 sudo 권한을 가진 루트 또는 사용자로 로그인해야합니다.

CentOS 8에 PostgreSQL 설치

이 기사를 작성할 당시 표준 CentOS 저장소에서 설치할 수있는 두 가지 버전의 PostgreSQL 서버가 있습니다 (버전 9.6 및 10.0).

사용 가능한 PostgreSQL 모듈 스트림을 나열하려면 다음을 입력하십시오.

dnf module list postgresql

결과는 postgresql 모듈이 두 개의 스트림으로 사용 가능하다는 것을 보여줍니다. 각 스트림에는 서버와 클라이언트의 두 프로필이 있습니다. 프로파일 서버가있는 스트림 10이 기본입니다.

CentOS-8 - AppStream Name Stream Profiles Summary postgresql 10 client, server PostgreSQL server and client module postgresql 9.6 client, server PostgreSQL server and client module

  1. 기본 스트림을 설치하려면 PostgreSQL 서버 버전 10.0을 입력하십시오.

    sudo dnf install @postgresql:10

    PostgreSQL 서버 버전 9.6을 설치하려면 다음을 입력하십시오.

    sudo dnf install @postgresql:9.6

PostgreSQL 데이터베이스에 몇 가지 추가 기능을 제공하는 contrib 패키지를 설치할 수도 있습니다.

sudo dnf install postgresql-contrib

설치가 완료되면 다음 명령을 사용하여 PostgreSQL 데이터베이스를 초기화하십시오.

sudo postgresql-setup initdb

Initializing database… OK

PostgreSQL 서비스를 시작하고 부팅시 시작되도록 활성화하십시오:

sudo systemctl enable --now postgresql

psql 도구를 사용하여 PostgreSQL 데이터베이스 서버에 연결하여 설치를 확인하고 해당 버전을 인쇄하십시오.

sudo -u postgres psql -c "SELECT version();"

PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

PostgreSQL 역할 및 인증 방법

PostgreSQL은 역할 개념을 사용하여 데이터베이스 액세스 권한을 처리합니다. 역할은 데이터베이스 사용자 또는 데이터베이스 사용자 그룹을 나타낼 수 있습니다.

PostgreSQL은 여러 인증 방법을 지원합니다. 가장 일반적으로 사용되는 방법은 다음과 같습니다.

  • 신뢰-pg_hba.conf에 정의 된 조건이 충족되는 한 암호없이 역할을 연결할 수 있습니다. 암호-암호를 제공하여 역할을 연결할 수 있습니다. 비밀번호는 scram-sha-256 , md5 password (일반 텍스트)로 저장 될 수 있습니다. ID-TCP / IP 연결에서만 지원됩니다. 선택적 사용자 이름 매핑을 사용하여 클라이언트 운영 체제 사용자 이름을 가져와 작동합니다. 피어-ID와 동일하지만 로컬 연결에서만 지원됩니다.

PostgreSQL 클라이언트 인증은 pg_hba.conf 구성 파일에 정의되어 있습니다. 로컬 연결의 경우 기본적으로 PostgreSQL은 피어 인증 방법을 사용하도록 설정되어 있습니다.

postgres 사용자는 PostgreSQL 서버를 설치할 때 자동으로 생성됩니다. 이 사용자는 PostgreSQL 인스턴스의 수퍼 유저입니다. MySQL 루트 사용자와 동일합니다.

Postgres 사용자로 PostgreSQL 서버에 로그인하려면 먼저 사용자로 전환 한 다음 psql 유틸리티를 사용하여 PostgreSQL 프롬프트에 액세스하십시오.

sudo su - postgres psql

여기에서 PostgreSQL 인스턴스와 상호 작용할 수 있습니다. PostgreSQL 셸을 종료하려면 다음을 입력하십시오.

\q

sudo 명령으로 사용자를 전환하지 않고 PostgreSQL 프롬프트에 액세스 할 수도 있습니다.

sudo -u postgres psql

일반적으로 postgres 사용자는 로컬 호스트에서만 사용됩니다.

PostgreSQL 역할 및 데이터베이스 생성

CREATEROLE 권한이있는 수퍼 유저와 역할 만 새 역할을 만들 수 있습니다.

다음 예에서는 john 이라는 데이터베이스 인 johndb 라는 새 역할을 작성하고 데이터베이스에 대한 권한을 부여합니다.

  1. 먼저 PostgreSQL 셸에 연결하십시오.

    sudo -u postgres psql

    thr 다음 명령을 사용하여 새 PostgreSQL 역할을 만듭니다.

    create role john;

    새 데이터베이스를 작성하십시오.

    create database johndb;

    다음 쿼리를 실행하여 데이터베이스의 사용자에게 권한을 부여하십시오.

    grant all privileges on database johndb to john;

PostgreSQL 서버에 대한 원격 액세스 활성화

기본적으로 PostgreSQL 서버는 로컬 인터페이스 127.0.0.1 에서만 청취합니다.

PostgreSQL 서버에 원격으로 액세스하려면 구성 파일을 엽니 다.

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

CONNECTIONS AND AUTHENTICATION 섹션으로 스크롤하여 다음 줄을 추가 / 편집하십시오.

/var/lib/pgsql/data/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

파일을 저장하고 다음을 사용하여 PostgreSQL 서비스를 다시 시작하십시오.

sudo systemctl restart postgresql

ss 유틸리티를 사용하여 변경 사항을 확인하십시오.

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

위의 결과는 PostgreSQL 서버가 모든 인터페이스 (0.0.0.0)의 기본 포트에서 수신하고 있음을 보여줍니다.

마지막 단계는 pg_hba.conf 파일을 편집하여 원격 연결을 수락하도록 서버를 구성하는 것입니다.

다음은 다양한 사용 사례를 보여주는 몇 가지 예입니다.

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

# TYPE DATABASE USER ADDRESS METHOD # The user jane can access all databases from all locations using an md5 password host all jane 0.0.0.0/0 md5 # The user jane can access only the janedb database from all locations using an md5 password host janedb jane 0.0.0.0/0 md5 # The user jane can access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

결론

CentOS 8은 9.6 및 10.0의 두 가지 PostgreSQL 버전을 제공합니다.

이 주제에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오.

centos postgresql 데이터베이스