웹사이트 검색

CentOS 6에서 PostgreSQL을 설치하고 사용하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 CentOS 버전에 대해 설명합니다. 현재 CentOS 6을 실행하는 서버를 운영 중인 경우 지원되는 CentOS 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

이유:

대신 참조:

다음 DigitalOcean 튜토리얼은 CentOS 7 서버에 PostgreSQL을 설치하는 방법을 설명하므로 흥미로울 수 있습니다.

  • CentOS 7에서 PostgreSQL 설치 및 사용 방법

소개

일반적으로 "postgres\라고 하는 PostgreSQL은 SQL 쿼리 언어를 사용하여 데이터를 조작하는 널리 사용되는 데이터베이스 관리 시스템입니다.

이 가이드에서는 CentOS VPS에서 postgres를 설치하고 사용하는 방법을 다룹니다.

PostgreSQL 설치 방법

CentOS에는 기본 리포지토리 내에 postgres 패키지가 포함되어 있지만 postgres 프로젝트 자체에서 사용할 수 있는 패키지를 사용합니다.

이렇게 하면 소스에서 설치하지 않고도 최신 버전의 소프트웨어에 액세스할 수 있습니다.

CentOS Postgres 패키지 제외

Postgres를 설치하기 전에 프로젝트 웹 사이트에서 최신 버전을 가져오려면 Postgres의 CentOS 버전을 제외해야 합니다.

텍스트 편집기에서 CentOS 리포지토리 구성 파일을 엽니다.

nano /etc/yum.repos.d/CentOS-Base.repo

[base] 섹션 하단에 postgres 패키지를 제외하는 줄을 추가합니다.

<예비>

yum이 기본 리포지토리에서 postgres를 업데이트하지 못하도록 [updates] 섹션 하단에 같은 줄을 추가합니다.

<예비>

Postgres 저장소 추가

이제 우리는 yum에게 postgres 패키지 상호 작용을 위한 기본 리포지토리를 신경쓰지 말라고 지시했습니다.

이제 대안을 제시해야 합니다. 우리는 postgres 프로젝트 웹사이트에서 제공하는 패키지를 사용할 것입니다.

CentOS 버전에 사용할 수 있는 최신 버전의 postgres를 찾으려면 사이트로 이동하십시오.

최신 버전의 postgres 및 CentOS 버전과 일치하는 링크를 Control-클릭하거나 마우스 오른쪽 버튼으로 클릭합니다. "링크 주소 복사\ 또는 사용 가능한 유사한 옵션을 선택하십시오.

드롭릿 세션으로 돌아가서 홈 디렉터리로 변경합니다. curl -O를 입력한 다음 다운로드 링크를 붙여넣습니다.

<예비>

다음 명령을 입력하여 방금 다운로드한 패키지를 설치합니다.

rpm -ivh pgdg*

이렇게 하면 시스템이 프로젝트 웹 사이트에서 postgres 패키지를 가져올 수 있습니다.

최신 버전을 얻기 위해 지금 그렇게 할 수 있습니다. 이러한 패키지에는 버전 번호가 포함되어 있으므로 사용 중인 버전을 확인하려면 검색해야 합니다.

yum list postgres*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.linux.duke.edu
 * extras: mirror.linux.duke.edu
 * updates: mirrors.kernel.org
Installed Packages
postgresql93.x86_64                  9.3.1-1PGDG.rhel6        @pgdg93
postgresql93-libs.x86_64             9.3.1-1PGDG.rhel6        @pgdg93
postgresql93-server.x86_64           9.3.1-1PGDG.rhel6        @pgdg93
Available Packages
postgresql93-contrib.x86_64          9.3.1-1PGDG.rhel6        pgdg93 
postgresql93-debuginfo.x86_64        9.3.1-1PGDG.rhel6        pgdg93

이 경우 모든 패키지에 버전 9.3용 "93\이 있음을 알 수 있습니다. "-server\ 패키지를 다운로드하려고 합니다.

yum install postgresql93-server

이 안내서의 나머지 부분에서 "93\을 시스템의 현재 postgres 버전으로 변경하십시오.

데이터베이스 환경 초기화

다음을 입력하여 데이터베이스 환경을 초기화할 수 있습니다.

service postgresql-9.3 initdb

그런 다음 부팅 시 시작되도록 구성하고 소프트웨어를 시작합니다.

chkconfig postgresql-9.3 on
service postgresql-9.3 start

이제 Postgres를 사용할 준비가 되었습니다.

Postgres 데이터베이스에 로그인하는 방법

기본적으로 postgres는 사용자와 postgres라는 데이터베이스를 생성합니다.

기본 보안 체계는 postgres 사용자가 액세스가 필요한 사용자만 액세스할 수 있다고 가정합니다. 이것은 sudo 규칙을 설정하여 제어할 수 있습니다.

우리는 psql이라는 인터페이스를 통해 postgres 데이터베이스 소프트웨어와 상호 작용합니다. 데이터를 조작하고 쿼리할 수 있는 프롬프트를 제공합니다.

지금은 다음과 같이 postgres 사용자에 로그인합니다.

su - postgres

프롬프트가 변경됩니다. 이제 다음을 입력하여 사용자 이름과 일치하는 데이터베이스에 연결할 수 있습니다.

psql

프롬프트가 다시 변경되어 이번에는 postgres 데이터베이스와 상호 작용하고 있음을 나타냅니다.

이 인터페이스를 종료해야 하는 경우 언제든지 다음을 입력할 수 있습니다.

\q

그런 다음 루트 사용자 셸로 돌아가려면 다음을 입력할 수 있습니다.

exit

유용한 psql 명령

다음은 현재 환경에 대한 아이디어를 얻는 데 도움이 되는 몇 가지 명령입니다.

  • ?: 여기에 나열되지 않은 명령을 포함하여 psql 명령의 전체 목록을 가져옵니다.\n
  • \\h: SQL 명령에 대한 도움말을 얻습니다. 구문에 대한 도움말을 보려면 특정 명령을 사용하여 이를 따를 수 있습니다.\n
  • \\q: psql 프로그램을 종료하고 Linux 프롬프트로 종료합니다.\n
  • \\d: 현재 데이터베이스에서 사용 가능한 테이블, 보기 및 시퀀스를 나열합니다.\n
  • \\du: 사용 가능한 역할 나열\n
  • \\dp: 액세스 권한 나열\n
  • \dt: 테이블 나열
  • \l: 데이터베이스 나열
  • Postgres 테이블 생성

    다음 구문을 사용하여 Postgres에서 테이블을 만들 수 있습니다.

    <예비>

    우리는 아이스 캔디 품종과 그에 대한 정보를 저장하기 위해 "팝시클\이라는 테이블을 만들 것입니다.

    CREATE TABLE popsicles (
        pop_id serial PRIMARY KEY,
        flavor varchar (50) NOT NULL,
        amount int NOT NULL,
        size varchar (10) check (size in ('small', 'normal', 'large'))
    );
    

    이제 \\dt 명령을 사용하여 테이블을 볼 수 있습니다.

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

    방금 정의한 열과 데이터 구조를 보려면 다음 명령을 입력하면 됩니다.

    \d popsicles
    
                                      Table "public.popsicles"
     Column |         Type          |                         Modifiers  
                            
    --------+-----------------------+------------------------------------
    ------------------------
     pop_id | integer               | not null default nextval('popsicles
    _pop_id_seq'::regclass)
     flavor | character varying(50) | not null
     amount | integer               | not null
     size   | character varying(10) | 
     . . .
    

    Postgres 테이블에 데이터 삽입

    이제 데이터베이스에 테이블이 있지만 아직 데이터가 없습니다. 삽입 명령을 사용하여 채울 수 있습니다.

    INSERT INTO 다음에 테이블 이름을 입력합니다. 그런 다음 일련의 괄호 안에 쉼표로 구분된 열 이름 목록을 입력합니다. 그런 다음 VALUES를 입력하고 열 이름에 해당하는 쉼표로 구분된 값 목록을 포함하는 두 번째 괄호 집합을 입력합니다.

    지금 시도해 봅시다. 테이블에 포도 아이스 캔디를 삽입합니다.

    INSERT INTO popsicles (flavor, amount, size) VALUES ('grape', 10, 'normal');
    
    INSERT 0 1
    

    INSERT 0 1은 명령이 성공적으로 수락되었음을 나타냅니다. 이 명령에 대해 알아야 할 몇 가지 사항은 값 목록의 단어가 작은따옴표() 안에 있고 명령이 세미콜론(;)으로 끝난다는 것입니다. 이 두 가지 사항을 기억하는 것이 중요합니다.

    주목해야 할 또 다른 사항은 pop_id 열을 설정하지 않았다는 것입니다. 기본 키로 정의했기 때문입니다. 이 열은 각 항목에 대해 고유한 값을 가져야 하므로 postgres는 생성한 각 레코드에 다음으로 사용 가능한 값을 자동으로 할당합니다.

    더 유용한 테이블을 만들기 위해 더 많은 데이터를 입력해 보겠습니다.

    INSERT INTO popsicles (flavor, amount, size) VALUES ('orange', 8, 'small');
    INSERT INTO popsicles (flavor, amount, size) VALUES ('fudge', 20, 'large');
    INSERT INTO popsicles (flavor, amount, size) VALUES ('eclair', 14, 'normal');
    INSERT INTO popsicles (flavor, amount, size) VALUES ('rainbow', 4, 'small');
    

    테이블을 생성할 때 "크기\ 열에 허용되는 값을 정의했습니다. Postgres는 값이 "소형\, "보통\ 또는 "대형\인지 확인합니다. 다른 값을 제공하려고 하면 어떻게 되나요?:

    INSERT INTO popsicles (flavor, amount, size) VALUES ('lime', 6, 'huge');
    
    ERROR:  new row for relation "popsicles" violates check constraint "popsicles_size_check"
    DETAIL:  Failing row contains (6, lime, 6, huge).
    

    보시다시피 postgres는 올바른 데이터를 입력했는지 확인했습니다. 크기에 대해 정의한 값 중 하나가 없기 때문에 최신 아이스 캔디를 거부했습니다.

    Postgres 테이블에서 데이터 선택

    select 명령을 사용하여 데이터에 대한 새 테이블을 쿼리할 수 있습니다. select 명령은 지정된 기준과 일치하는 테이블에서 데이터를 반환합니다.

    테이블에서 모든 정보를 반환하려면 "모든 항목 일치\를 의미하는 특수 기호인 별표(*)를 사용할 수 있습니다.

    SELECT * FROM popsicles;
    
     pop_id | flavor  | amount |  size  
    --------+---------+--------+--------
          1 | grape   |     10 | normal
          2 | orange  |      8 | small
          3 | fudge   |     20 | large
          4 | eclair  |     14 | normal
          5 | rainbow |      4 | small
    (5 rows)
    

    별표를 원하는 열로 대체하여 열별로 선택할 수 있습니다.

    SELECT flavor, amount FROM popsicles;
    
     flavor  | amount 
    ---------+--------
     grape   |     10
     orange  |      8
     fudge   |     20
     eclair  |     14
     rainbow |      4
    (5 rows)
    

    특정 결과만 표시하도록 필터링하려면 끝에 where 필터를 추가할 수 있습니다.

    SELECT * FROM popsicles WHERE amount <= 10;
    
     pop_id | flavor  | amount |  size  
    --------+---------+--------+--------
          1 | grape   |     10 | normal
          2 | orange  |      8 | small
          5 | rainbow |      4 | small
    (3 rows)
    

    결론

    이제 시스템에 postgres가 설치되어 있어야 하며 기본 사용법을 잘 알고 있어야 합니다.

    Postgres를 다룰 때 배워야 할 다른 많은 것들이 있습니다. 다른 기사를 탐색하여 관리 방법을 배울 수 있습니다.

    저스틴 엘링우드