웹사이트 검색

Ubuntu 14.04에서 PostgreSQL을 설치하고 사용하는 방법


소개

관계형 데이터베이스 관리 시스템은 많은 웹 사이트 및 응용 프로그램의 핵심 구성 요소입니다. 정보를 저장, 구성 및 액세스하는 구조화된 방법을 제공합니다.

PostgreSQL 또는 Postgres는 SQL 쿼리 언어 구현을 제공하는 관계형 데이터베이스 관리 시스템입니다. 많은 크고 작은 프로젝트에서 널리 사용되는 선택이며 표준을 준수하고 읽기 잠금이 없는 안정적인 트랜잭션 및 동시성과 같은 많은 고급 기능이 있다는 이점이 있습니다.

이 가이드에서는 Ubuntu 14.04 VPS 인스턴스에 Postgres를 설치하는 방법을 시연하고 이를 사용하는 몇 가지 기본 방법을 살펴봅니다.

설치

Ubuntu의 기본 리포지토리에는 Postgres 패키지가 포함되어 있으므로 apt 패키징 시스템을 사용하여 번거로움 없이 설치할 수 있습니다.

최근에 로컬 apt 저장소를 업데이트하지 않았으므로 지금 업데이트해 보겠습니다. 그런 다음 몇 가지 추가 유틸리티와 기능을 추가하는 Postgres 패키지와 "contrib\ 패키지를 얻을 수 있습니다.

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

이제 소프트웨어가 설치되었으므로 작동 방식과 사용했던 유사한 데이터베이스 관리 시스템과 어떻게 다른지 살펴볼 수 있습니다.

PostgreSQL 역할 및 데이터베이스 사용

기본적으로 Postgres는 \역할\이라는 개념을 사용하여 인증 및 권한 부여를 지원합니다. 이는 어떤 면에서 일반 Unix 스타일 계정과 유사하지만 Postgres는 사용자와 그룹을 구분하지 않고 대신 더 유연한 용어를 선호합니다. "역할\.

설치 시 Postgres는 "ident\ 인증을 사용하도록 설정됩니다. 즉, Postgres 역할을 일치하는 Unix/Linux 시스템 계정과 연결합니다. Postgres 역할이 있는 경우 연결된 Linux 시스템 계정에 로그인하여 로그인할 수 있습니다.

설치 절차는 기본 Postgres 역할과 연결된 postgres라는 사용자 계정을 생성했습니다. Postgres를 사용하려면 해당 계정에 로그인해야 합니다. 다음을 입력하면 됩니다.

sudo -i -u postgres

일반 사용자 비밀번호를 묻는 메시지가 표시되고 postgres 사용자에 대한 쉘 프롬프트가 표시됩니다.

다음을 입력하여 즉시 Postgres 프롬프트를 얻을 수 있습니다.

psql

자동 로그인되어 데이터베이스 관리 시스템과 즉시 상호 작용할 수 있습니다.

그러나 작업할 사용자 및 데이터베이스에 대한 유연성을 가질 수 있도록 다른 역할 및 데이터베이스를 사용하는 방법에 대해 조금 설명하겠습니다.

다음을 입력하여 PostgreSQL 프롬프트를 종료합니다.

\q

이제 postgres Linux 명령 프롬프트로 돌아와야 합니다.

새 역할 만들기

postgres Linux 계정에서 데이터베이스 시스템에 로그인할 수 있습니다. 그러나 추가 역할을 생성하는 방법도 시연할 것입니다. Postgres 관리 역할과 연결된 postgres Linux 계정은 사용자 및 데이터베이스를 생성하는 일부 유틸리티에 액세스할 수 있습니다.

다음을 입력하여 새 역할을 만들 수 있습니다.

createuser --interactive

이것은 기본적으로 올바른 Postgres 명령을 호출하여 사양에 맞는 사용자를 생성하는 대화식 셸 스크립트입니다. 역할의 이름과 수퍼유저여야 하는지 여부라는 두 가지 질문만 묻습니다. 몇 가지 추가 플래그를 전달하여 더 많은 제어를 얻을 수 있습니다. man 페이지를 보고 옵션을 확인하십시오.

man createuser

새 데이터베이스 만들기

Postgres가 기본적으로 설정되는 방식(일치하는 시스템 계정에서 요청하는 역할 인증)은 연결할 역할에 대해 일치하는 데이터베이스가 존재한다는 가정과 함께 제공됩니다.

따라서 test1이라는 사용자가 있는 경우 해당 역할은 기본적으로 test1이라는 데이터베이스에 연결을 시도합니다.

postgres 사용자로 다음 명령을 호출하여 적절한 데이터베이스를 생성할 수 있습니다.

<예비>

새 사용자로 Postgres에 연결

test1(adduser test1을 입력하여 만들 수 있음)이라는 Linux 시스템 계정이 있고 Postgres 역할과 < 코드>테스트1.

다음을 입력하여 Linux 시스템 계정으로 변경할 수 있습니다.

<예비>

그런 다음 다음을 입력하여 test1 Postgres 역할로 test1 데이터베이스에 연결할 수 있습니다.

psql

모든 구성 요소가 구성되었다고 가정하면 자동으로 로그인됩니다.

사용자가 다른 데이터베이스에 연결하도록 하려면 다음과 같이 데이터베이스를 지정하면 됩니다.

<예비>

다음을 입력하여 로그인한 Postgres 사용자 및 현재 연결된 데이터베이스에 대한 정보를 얻을 수 있습니다.

\conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

이는 기본이 아닌 데이터베이스에 연결하거나 기본이 아닌 사용자와 연결하는 경우 현재 설정을 상기시키는 데 도움이 될 수 있습니다.

테이블 생성 및 삭제

이제 PostgreSQL 데이터베이스 시스템에 연결하는 방법을 알았으므로 몇 가지 기본 작업을 완료하는 방법을 살펴보겠습니다.

먼저 일부 데이터를 저장할 테이블을 생성해 보겠습니다. 놀이기구를 설명하는 표를 만들어 봅시다.

이 명령의 기본 구문은 다음과 같습니다.

<예비>

보시다시피 테이블에 이름을 지정한 다음 원하는 열과 열 유형 및 필드 데이터의 최대 길이를 정의합니다. 선택적으로 각 열에 대한 테이블 제약 조건을 추가할 수도 있습니다.

여기에서 Postgres에서 테이블을 만들고 관리하는 방법에 대해 자세히 알아볼 수 있습니다.

우리의 목적을 위해 다음과 같은 간단한 테이블을 만들 것입니다.

CREATE TABLE playground (
    equip_id serial PRIMARY KEY,
    type varchar (50) NOT NULL,
    color varchar (25) NOT NULL,
    location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
    install_date date
);

우리는 우리가 가지고 있는 장비의 목록을 작성하는 놀이터 테이블을 만들었습니다. 이것은 serial 유형의 장비 ID로 시작합니다. 이 데이터 유형은 자동 증가 정수입니다. 우리는 이 열에 기본 키의 제약 조건을 부여했습니다. 이는 값이 null이 아니라 고유해야 함을 의미합니다.

두 열에 대해 필드 길이를 지정하지 않았습니다. 일부 컬럼 유형은 길이가 유형에 의해 암시되기 때문에 설정된 길이가 필요하지 않기 때문입니다.

그런 다음 장비 유형 및 색상에 대한 열을 제공하며 각 열은 비워둘 수 없습니다. 그런 다음 위치 열을 만들고 값이 8개의 가능한 값 중 하나여야 하는 제약 조건을 만듭니다. 마지막 열은 장비를 설치한 날짜를 기록하는 날짜 열입니다.

다음을 입력하면 새 테이블을 볼 수 있습니다.

\d
                   List of relations
 Schema |          Name           |   Type   |  Owner   
--------+-------------------------+----------+----------
 public | playground              | table    | postgres
 public | playground_equip_id_seq | sequence | postgres
(2 rows)

보시다시피 플레이그라운드 테이블이 있지만 sequence 유형의 playground_equip_id_seq라는 항목도 있습니다. 이것은 equip_id 열에 부여한 "직렬\ 유형의 표현입니다. 이것은 시퀀스의 다음 번호를 추적합니다.

테이블만 보려면 다음을 입력하십시오.

\dt
           List of relations
 Schema |    Name    | Type  |  Owner   
--------+------------+-------+----------
 public | playground | table | postgres
(1 row)

테이블에서 데이터 추가, 쿼리 및 삭제

이제 테이블이 생성되었으므로 일부 데이터를 테이블에 삽입할 수 있습니다.

슬라이드와 그네를 추가해 보겠습니다. 추가하려는 테이블을 호출하고 열 이름을 지정한 다음 각 열에 대한 데이터를 제공하여 이 작업을 수행합니다. 슬라이드와 스윙을 다음과 같이 추가할 수 있습니다.

<예비>

몇 가지 사항에 유의해야 합니다. 먼저, 열 이름을 따옴표로 묶어서는 안 되지만 입력하는 열 에는 따옴표가 필요하다는 점에 유의하세요.

명심해야 할 또 다른 사항은 equip_id 열에 대한 값을 입력하지 않는다는 것입니다. 이는 테이블에 새 행이 생성될 때마다 자동으로 생성되기 때문입니다.

그런 다음 다음을 입력하여 추가한 정보를 다시 가져올 수 있습니다.

SELECT * FROM playground;
 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2014-04-28
        2 | swing | yellow | northwest | 2010-08-16
(2 rows)

여기에서 equip_id가 성공적으로 채워졌고 다른 모든 데이터가 올바르게 구성되었음을 확인할 수 있습니다.

슬라이드가 깨지고 놀이터에서 슬라이드를 제거하는 경우 다음을 입력하여 테이블에서 행을 제거할 수도 있습니다.

DELETE FROM playground WHERE type = 'slide';

테이블을 다시 쿼리하면 슬라이드가 더 이상 테이블의 일부가 아님을 알 수 있습니다.

SELECT * FROM playground;
 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        2 | swing | yellow | northwest | 2010-08-16
(1 row)

테이블에서 열을 추가하고 삭제하는 방법

추가 열을 추가하기 위해 테이블을 만든 후 테이블을 수정하려는 경우 쉽게 수행할 수 있습니다.

다음을 입력하여 각 장비에 대한 마지막 유지 관리 방문을 표시하는 열을 추가할 수 있습니다.

<예비>

테이블 정보를 다시 보면 새 열이 추가된 것을 볼 수 있습니다(그러나 입력된 데이터는 없습니다).

SELECT * FROM playground;
 equip_id | type  | color  | location  | install_date | last_maint 
----------+-------+--------+-----------+--------------+------------
        2 | swing | yellow | northwest | 2010-08-16   | 
(1 row)

열을 쉽게 삭제할 수 있습니다. 작업 팀이 별도의 도구를 사용하여 유지 관리 기록을 추적하는 경우 다음을 입력하여 여기에 열을 제거할 수 있습니다.

ALTER TABLE playground DROP last_maint;

테이블에서 데이터를 업데이트하는 방법

테이블에 레코드를 추가하고 삭제하는 방법은 알고 있지만 기존 항목을 수정하는 방법은 아직 다루지 않았습니다.

원하는 레코드를 쿼리하고 사용하려는 값으로 열을 설정하여 기존 항목의 값을 업데이트할 수 있습니다. "swing\ 레코드를 쿼리하고(이는 테이블의 모든 스윙과 일치함) 색상을 "red\로 변경할 수 있습니다. 페인트 작업을 제공하면 유용할 수 있습니다.

<예비>

데이터를 다시 쿼리하여 작업이 성공했는지 확인할 수 있습니다.

SELECT * FROM playground;
 equip_id | type  | color | location  | install_date 
----------+-------+-------+-----------+--------------
        2 | swing | red   | northwest | 2010-08-16
(1 row)

보시다시피 이제 슬라이드가 빨간색으로 등록되었습니다.

결론

이제 Ubuntu 14.04 서버에서 PostgreSQL로 설정되었습니다. 그러나 여전히 Postgres로 배울 것이 훨씬 더 많습니다. 다음은 Postgres 사용 방법을 다루는 추가 가이드입니다.

  • 관계형 데이터베이스 관리 시스템 비교
  • Postgres로 테이블을 만들고 관리하는 방법 알아보기
  • 역할 및 권한 관리 능력 향상
  • Select로 Postgres로 쿼리 작성
  • 웹 인터페이스에서 데이터베이스를 관리하기 위해 phpPgAdmin 설치
  • PostgreSQL 보안 방법 알아보기
  • Postgres로 마스터-슬레이브 복제 설정
  • Postgres 데이터베이스 백업 방법 알아보기

저스틴 엘링우드