기계적 인조 인간

데비안 10에 postgresql을 설치하는 방법

ì•„ì ´ìŠ¤í ¬ë¦¼ ì¹¼ë ¼í ¼ ìŠ¬ë ¼ì „ 액체괴물 만들기!! í 르는 ì  í†  ì•¡ê´´ ìŠ¬ë ¼ì „ 놀ì

ì•„ì ´ìŠ¤í ¬ë¦¼ ì¹¼ë ¼í ¼ ìŠ¬ë ¼ì „ 액체괴물 만들기!! í 르는 ì  í†  ì•¡ê´´ ìŠ¬ë ¼ì „ 놀ì

차례:

Anonim

Postgres라고도하는 PostgreSQL은 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다. 온라인 백업, 특정 시점 복구, 중첩 트랜잭션, SQL 및 JSON 쿼리, MVCC (Multi-version Concurrency Control), 비동기 복제 등과 같은 많은 강력한 기능이 있습니다.

이 튜토리얼에서는 데비안 10에 PostgreSQL 데이터베이스 서버를 설치하는 단계를 안내합니다. 또한 기본 데이터베이스 관리의 기본 사항도 살펴 봅니다.

PostgreSQL 설치

이 기사를 작성할 당시 기본 데비안 저장소에서 사용 가능한 최신 PostgreSQL 버전은 PostgreSQL 버전 11.5입니다.

데비안 서버에 PostgreSQL을 설치하려면 sudo 권한을 가진 루트 또는 사용자로 다음 단계를 수행하십시오.

  1. APT 패키지 색인을 업데이트하여 시작하십시오.

    sudo apt update

    PostgreSQL 데이터베이스에 대한 추가 기능을 제공하는 PostgreSQL 서버 및 contrib 패키지를 설치하십시오.

    sudo apt install postgresql postgresql-contrib

    설치가 완료되면 PostgreSQL 서비스가 시작됩니다. 설치를 확인하려면 psql 도구를 사용하여 서버 버전을 인쇄하십시오.

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

    출력은 다음과 같아야합니다.

    PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

psql 은 PostgreSQL 서버와 상호 작용할 수있는 대화식 터미널 프로그램입니다.

PostgreSQL 역할 및 인증 방법

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

PostgreSQL은 몇 가지 인증 방법을 지원합니다. 가장 자주 사용되는 방법은 다음과 같습니다.

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

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

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

PostgreSQL 서버에 "postgres"로 로그인하려면 사용자 postgres로 전환하고 psql 유틸리티를 사용하여 PostgreSQL 프롬프트에 액세스하십시오.

sudo su - postgres psql

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

\q

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

sudo -u postgres psql

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

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

createuser 명령을 사용하면 명령 행에서 새 역할을 작성할 수 있습니다. CREATEROLE 권한이있는 수퍼 유저와 역할 만 새 역할을 만들 수 있습니다.

다음 예에서는 kylo 데이터베이스 인 kylodb 라는 새 역할을 만들고 데이터베이스에 대한 권한을 역할에 부여합니다.

  1. 먼저 다음 명령을 실행하여 역할을 작성하십시오.

    sudo su - postgres -c "createuser kylo"

    다음으로 createdb 명령을 사용하여 데이터베이스를 작성하십시오.

    sudo su - postgres -c "createdb kylodb"

    데이터베이스의 사용자에게 권한을 부여하려면 PostgreSQL 쉘에 연결하십시오:

    sudo -u postgres psql

    다음 쿼리를 실행하십시오.

    grant all privileges on database kylodb to kylo;

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

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

구성 파일 postgresql.conf 열고 CONNECTIONS AND AUTHENTICATION 섹션에서 listen_addresses = '*' 를 추가하십시오. 이것은 서버가 모든 네트워크 인터페이스를 수신하도록 지시합니다.

sudo nano /etc/postgresql/11/main/postgresql.conf /etc/postgresql/11/main/postgresql.conf

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

변경 사항을 적용하려면 파일을 저장하고 PostgreSQL 서비스를 다시 시작하십시오.

sudo service postgresql restart

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 파일을 편집하여 원격 로그인을 허용하도록 서버를 구성하는 것입니다.

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

/etc/postgresql/11/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using an 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 an 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

결론

데비안 10에서 PostgreSQL을 설치하고 구성하는 방법을 설명했습니다.이 주제에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오.

데비안 postgresql 데이터베이스