기계적 인조 인간

centos 7에 postgresql을 설치하는 방법

Установка Asterisk 14 на CentOS 7

Установка Asterisk 14 на CentOS 7

차례:

Anonim

PostgreSQL 또는 Postgres는 복잡한 웹 애플리케이션을 생성 할 수있는 많은 고급 기능을 갖춘 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다.

이 자습서에서는 CentOS 7 시스템에 PostgreSQL을 설치하는 방법에 대한 두 가지 방법을 보여줍니다. 첫 번째 방법은 CentOS 리포지토리에서 PostgreSQL v9.2.23을 설치하는 데 필요한 단계를 안내하는 반면, 두 번째 방법은 공식 PostgreSQL 리포지토리에서 최신 PostgreSQL 버전을 설치하는 방법을 보여줍니다.

응용 프로그램에 최신 버전이 필요하지 않은 경우 첫 번째 방법을 사용하고 CentOS 리포지토리에서 PostgreSQL을 설치하는 것이 좋습니다.

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

전제 조건

이 학습서를 계속하기 전에 sudo 권한이있는 사용자로 로그인했는지 확인하십시오.

CentOS 리포지토리에서 PostgreSQL 설치

이 기사를 작성할 당시 CentOS 저장소에서 사용 가능한 최신 버전의 PostgreSQL은 PostgreSQL 버전 9.2.23입니다.

CentOS 서버에 PostgreSQL을 설치하려면 다음 단계를 따르십시오.

  1. PostgreSQL 설치

    PostgreSQL 데이터베이스에 몇 가지 추가 기능을 제공하는 PostgreSQL contrib 패키지와 함께 PostgreSQL 서버를 설치하려면 다음을 입력하십시오.

    sudo yum install postgresql-server postgresql-contrib

    데이터베이스 초기화

    다음 명령을 사용하여 PostgreSQL 데이터베이스를 초기화하십시오.

    sudo postgresql-setup initdb

    Initializing database… OK

    PostgreSQL 시작

    PostgreSQL 서비스를 시작하고 부팅시 시작할 수있게하려면 다음을 입력하십시오.

    sudo systemctl start postgresql sudo systemctl enable postgresql

    PostgreSQL 설치 확인

    설치를 확인하기 위해 psql 도구를 사용하여 PostgreSQL 데이터베이스 서버에 연결하고 서버 버전을 인쇄하려고합니다.

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

    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)

Psql은 PostgreSQL 서버와 상호 작용할 수있는 대화식 명령 줄 유틸리티입니다.

PostgreSQL 리포지토리에서 PostgreSQL 설치

이 기사를 작성할 당시 공식 PostgreSQL 저장소에서 사용 가능한 최신 PostgreSQL 버전은 PostgreSQL 버전 10.4입니다. 다음 단계를 계속하기 전에 PostgreSQL Yum Repository 페이지를 방문하여 사용 가능한 새 버전이 있는지 확인해야합니다.

CentOS 서버에 최신 PostgreSQL 버전을 설치하려면 아래 단계를 따르십시오.

  1. PostgreSQL 리포지토리 활성화

    PostgreSQL 리포지토리를 활성화하려면 리포지토리 rpm 파일을 설치하십시오.

    sudo yum install

    PostgreSQL 설치

    리포지토리가 활성화되면 다음과 같이 PostgreSQL 서버 및 PostgreSQL contrib 패키지를 설치하십시오.

    sudo yum install postgresql10-server postgresql10-contrib

    데이터베이스 초기화

    PostgreSQL 데이터베이스 유형을 초기화하려면

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

    Initializing database… OK

    PostgreSQL 시작

    PostgreSQL 서비스를 시작하고 부팅시 시작할 수있게하려면:

    sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10

    PostgreSQL 설치 확인

    설치를 확인하기 위해 psql 도구를 사용하여 PostgreSQL 데이터베이스 서버에 연결하고 서버 버전을 인쇄하려고합니다.

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"

    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)

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 서버에 로그인하려면 먼저 사용자 postgres로 전환 한 다음 psql 유틸리티를 사용하여 PostgreSQL 프롬프트에 액세스해야합니다.

sudo su - postgres psql

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

\q

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

sudo -u postgres psql

postgres 사용자는 일반적으로 로컬 호스트에서만 사용 postgres 사용자의 비밀번호를 설정하지 않는 것이 좋습니다.

공식 PostgreSQL 저장소에서 PostgreSQL 버전 10을 설치 한 경우 /usr/pgsql-10/bin/psql psql 바이너리의 전체 경로를 사용해야합니다.

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

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

다음 예에서는 john 이라는 데이터베이스를 johndb 라는 데이터베이스로 johndb 데이터베이스에 대한 권한을 부여합니다.

  1. PostgreSQL 셸에 연결

    sudo -u postgres psql

    새로운 PostgreSQL 역할 생성

    다음 명령은 john이라는 새 역할을 만듭니다.

    create role john;

    새로운 PostgreSQL 데이터베이스 생성

    createdb 명령을 사용하여 johndb라는 새 데이터베이스를 작성하십시오.

    create database johndb;

    권한 부여

    이전 단계에서 작성한 데이터베이스에 대해 john 사용자에게 권한을 부여하려면 다음 조회를 실행하십시오.

    grant all privileges on database johndb to john;

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

기본적으로 PostgreSQL 서버는 로컬 인터페이스 127.0.0.1 에서만 청취합니다. PostgreSQL 서버에 대한 원격 액세스를 활성화하려면 구성 파일 postgresql.conf 열고 CONNECTIONS AND AUTHENTICATION 섹션에 listen_addresses = '*' 를 추가하십시오.

sudo vim /var/lib/pgsql/data/postgresql.conf PostgreSQL 버전 10을 실행중인 경우 파일 경로는 /var/lib/pgsql/10/data/postgresql.conf ./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 PostgreSQL 버전 10을 실행중인 경우 systemctl restart postgresql-10 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 will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust PostgreSQL 버전 10을 실행중인 경우 파일의 전체 경로는 /var/lib/pgsql/10/data/pg_hba.conf 입니다.

결론

CentOS 7 서버에서 PostgreSQL을 설치하고 구성하는 방법을 배웠습니다.

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

centos postgresql 데이터베이스