SW/리눅스

Linux : Debian 10 : PostgreSQL 설치 방법, 예제, 명령어

얇은생각 2022. 4. 3. 07:30
반응형

Postgre SQL(간단히 Postgres)은 오픈 소스 범용 객체 관계형 데이터베이스 관리 시스템입니다. 온라인 백업, 시점별 복구, 중첩 트랜잭션, SQL 및 JSON 쿼리, 다중 버전 동시성 제어(MVCC), 비동기 복제 등과 같은 다양한 강력한 기능을 제공합니다.

이 튜토리얼에서는 Debian 10에 Postgre SQL 데이터베이스 서버를 설치하는 단계를 안내합니다. 또한 기본적인 데이터베이스 관리의 기본 사항에 대해서도 알아보겠습니다.

 

 

Linux : Debian 10 : PostgreSQL 설치 방법, 예제, 명령어

 

 

Postgre SQL을 설치

이 기사를 작성할 당시 기본 Debian 리포지토리에서 사용할 수 있는 Postgre SQL의 최신 버전은 Postgre SQL 버전 11.5입니다.

Debian 서버에 Postgre SQL을 설치하려면 다음 단계를 루트 또는 sudo 권한이 있는 사용자로 수행하십시오.

1. APT 패키지 색인을 업데이트하는 것으로 시작합니다.

sudo apt update

 

 

2. Postgre SQL 서버를 설치하고 Postgre SQL 데이터베이스에 대한 추가 기능을 제공하는 패키지를 제공합니다.

sudo apt install postgresql postgresql-contrib

 

3. 설치가 완료되면 Postgre SQL 서비스가 시작됩니다. 설치를 확인하려면 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은 Postgre SQL 서버와 상호 작용할 수 있는 대화형 터미널 프로그램입니다.

 

 

 

Postgre SQL 역할 및 인증 방법

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

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

• 신뢰 - pg_hba.conf에 정의된 조건이 충족되면 역할은 암호 없이 연결할 수 있습니다.

• 암호 - 역할은 암호를 제공하여 연결할 수 있습니다. 암호는 scram-sha-256 md5 및 암호(텍스트 지우기)로 저장할 수 있습니다.

• ID - TCP/IP 연결에만 지원됩니다. 사용자 이름 매핑 옵션과 함께 클라이언트의 운영 체제 사용자 이름을 가져오는 방식으로 작동합니다.

• 피어 - ID와 동일하지만 로컬 연결에서만 지원됩니다.

 

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

Postgres SQL이 설치되면 "postgres" 사용자가 자동으로 생성됩니다. 이 사용자는 Postgre SQL 인스턴스의 슈퍼 사용자이며 MySQL 루트 사용자와 동일합니다.

Postgres SQL 서버에 "postgres"로 로그인하려면 사용자 postgres로 전환하고 psql 유틸리티를 사용하여 Postgre SQL 프롬프트에 액세스합니다.

sudo su - postgres
psql

 

 

여기서 Postgre SQL 서버와 상호 작용할 수 있습니다. Postgre SQL 셸 유형을 종료하려면 다음을 수행합니다.

\q

 

 

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

sudo -u postgres psql

 

 

일반적으로 postgres 사용자는 localhost에서만 사용됩니다.

 

 

 

Postgre SQL 역할 및 데이터베이스 생성

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

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

 

1. 먼저 다음 명령을 실행하여 역할을 생성합니다.

sudo su - postgres -c "createuser kylo"

 

 

2. 그런 다음 createdb 명령을 사용하여 데이터베이스를 작성합니다.

sudo su - postgres -c "createdb kylodb"

 

 

3. 데이터베이스에서 사용자에게 권한을 부여하려면 Postgre SQL 셸에 연결합니다.

다음 쿼리를 실행합니다.

sudo -u postgres psql

# GRANT ALL PRIVILEGES ON DATABASE kylodb TO kylo;

 

 

 

Postgre SQL Server에 대한 원격 액세스를 사용하도록 설정

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

원격 위치에서 Postgre SQL 서버에 연결하려면 공용 인터페이스에서 수신하도록 서버를 설정하고 원격 연결을 허용하도록 구성을 편집해야 합니다.

구성 파일 Postgre SQL.conf를 열고 CONNESTIONs AND AUTHENTICATION 섹션에서 listen_basic = '*'를 추가합니다. 서버가 모든 네트워크 인터페이스에서 수신 대기하도록 지시합니다.

# /etc/postgresql/11/main/postgresql.conf

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

 

 

파일을 저장하고 Postgre SQL 서비스를 다시 시작하여 변경 내용을 적용합니다.

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                [::]:*

 

 

출력에 Postgre SQL 서버가 모든 인터페이스(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

 

 

Debian 10에 Postgre SQL을 설치하고 구성하는 방법을 보여드렸습니다. 이 항목에 대한 자세한 내용은 Postgre SQL 설명서를 참조하십시오.

반응형