Ubuntu, CentOS 및 Windows에 PostgreSQL을 설치하는 방법은 무엇입니까?
게시 됨: 2021-06-08PostgreSQL은 강력하고 고성능이며 강력한 커뮤니티에서 신뢰할 수 있는 인기 있는 크로스 플랫폼 오픈 소스 객체 관계형 데이터베이스 시스템 중 하나입니다.
버클리 캘리포니아 대학교에서 POSTGRES 프로젝트의 일부로 1986년으로 거슬러 올라가며 핵심 플랫폼에서 30년 동안 활발하게 개발되었습니다. 수년에 걸친 일관된 성능은 엔터프라이즈 사용을 위한 무결성, 아키텍처 및 확장성을 입증했습니다. ACID와 호환되며 인기 있는 PostGIS 지리 공간 데이터베이스 확장기와 같은 강력한 애드온을 지원합니다.
이 기사에서는 일반적인 플랫폼에 PostgreSQL을 설치하는 방법을 다룰 것입니다.
시작하겠습니다.
우분투
PostgreSQL은 Ubuntu의 모든 버전과 버전에서 사용할 수 있습니다. Ubuntu 버전에서 기본적으로 제공되고 평생 동안 지원되는 버전을 설치 및 사용하거나 PostgreSQL 리포지토리를 추가하고 동일한 버전을 설치하여 특정 버전을 사용하도록 선택할 수 있습니다. 여기서는 두 가지 옵션을 모두 다룰 것입니다.
Ubuntu의 리포지토리에서 제공하는 기본 지원 버전을 사용하려면 다음을 실행합니다.
$ sudo apt-get update $ sudo apt-get -y install postgresql PostgreSQL Apt Repository는 Ubuntu의 현재 LTS 버전(예: 20.04 , 18.04 및 16.04 합니다. 완전히 지원되지는 않지만 가장 가까운 LTS 버전을 사용하여 비 LTS 버전에서도 동일한 패키지가 작동합니다.
PostgreSQL apt 저장소 를 사용하려면 다음 단계를 따르세요.
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get -y install postgresql PostgreSQL 리포지토리에서 특정 버전을 설치하려면 최신 버전을 참조하는 postgresql 대신 postgresql-12 와 같이 지정합니다.
$ sudo apt-get -y install postgresql-12리포지토리에는 타사 애드온을 비롯한 다양한 패키지도 포함되어 있습니다. 예를 들어 일반적으로 사용 가능한 PostgreSQL 버전 12 패키지에는 다음이 포함됩니다.
| postgresql-client-12 | 클라이언트 라이브러리 및 클라이언트 바이너리 |
|---|---|
| postgresql-12 | 코어 데이터베이스 서버 |
| postgresql-contrib-9.x | 추가로 제공되는 모듈(버전 10 이상에서 postgresql-xx 패키지의 일부) |
| libpq-dev | C 언어 프론트엔드 개발을 위한 라이브러리 및 헤더 |
| postgresql-server-dev-12 | C 언어 백엔드 개발을 위한 라이브러리 및 헤더 |
| pgadmin4 | pgAdmin 4 그래픽 관리 유틸리티 |
설치가 완료되면 아래 명령어를 통해 DB 서비스의 상태를 확인할 수 있습니다.
$ sudo systemctl status postgresql.serviceUbuntu의 경우 설치 후 서비스를 활성화하고 다음과 같이 실행해야 합니다.
$ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago Main PID: 3364 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1113) Memory: 0B CGroup: /system.slice/postgresql.service Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS... Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS. $센트OS
Ubuntu와 마찬가지로 RHEL/CentOS 리포지토리에는 OS의 수명 기간 동안 지원되는 특정 버전의 PostgreSQL도 포함되어 있습니다. 다음을 사용하여 동일하게 설치할 수 있습니다.
$ sudo yum install -y postgresql-server또는 CentOS 8을 사용하는 경우 DNF를 사용할 수 있습니다.
$ sudo dnf install -y postgresql-server설치 후 아래 명령을 실행하여 DB를 초기화하고 PostgreSQL 서비스를 활성화하고 시작합니다.
$ sudo postgresql-setup initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service또는 PostgreSQL yum 저장소 에서 직접 패키지를 사용하려면 저장소를 다음과 같이 추가해야 합니다.
$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm그런 다음 이 기사를 작성하는 시점에서 최신 안정 릴리스인 버전 13과 같은 특정 버전의 PostgreSQL을 설치하려면 다음을 사용하십시오.
$ sudo yum install -y postgresql13-serveryum 리포지토리에는 PostgreSQL용 추가 패키지도 포함되어 있으며 그 중 중요한 패키지가 아래에 나열되어 있습니다.
| postgresql-클라이언트 | 라이브러리 및 클라이언트 바이너리 |
|---|---|
| postgresql-서버 | 코어 데이터베이스 서버 |
| postgresql-contrib | 추가로 제공되는 모듈 |
| postgresql-devel | C 언어 개발을 위한 라이브러리 및 헤더 |
설치 후 아래 단계를 실행하여 DB를 초기화하고 PostgreSQL 서비스를 활성화하고 시작합니다.
$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb $ sudo systemctl enable postgresql-13 $ sudo systemctl start postgresql-13다음 명령어를 사용하여 DB 서비스의 상태를 확인할 수 있습니다.
$ sudo systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS) Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 ├─7015 postgres: logger process ├─7017 postgres: checkpointer process ├─7018 postgres: writer process ├─7019 postgres: wal writer process ├─7020 postgres: autovacuum launcher process └─7021 postgres: stats collector process Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server... Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server. $창
Windows 32비트 및 64비트 설치 프로그램은 여기의 공식 PostgreSQL 사이트에서 다운로드할 수 있습니다.
- 필요한 버전 및 아키텍처에 따라 해당 바이너리를 다운로드할 수 있습니다.


- 사용 가능한 최신 버전인 Windows 64비트 플랫폼용 v13.3을 다운로드합니다. 다운로드가 완료되면 설치 프로그램을 두 번 클릭하여 시작하십시오.

- 계속하려면 다음을 클릭하십시오.

- 다음을 클릭하여 기본 경로를 계속 사용하거나 사용자 지정 설치 경로를 지정합니다.

- 기본 구성 요소를 선택된 상태로 유지하고 다음을 클릭하여 계속 진행할 수 있습니다.

- 다음으로 데이터 디렉토리 위치를 묻습니다. 별도의 전용 디스크나 디렉터리가 할당되지 않은 경우 기본값으로 유지할 수 있습니다. 계속하려면 다음을 클릭하십시오.

-
postgres사용자에게 할당될 강력한 암호를 지정하십시오. 완료되면 다음을 클릭합니다.

- 대부분의 경우 기본 포트
5432가 좋습니다. 다음을 클릭하여 다음 페이지로 이동합니다.

- DB의 로케일을 선택하고 다음을 클릭하여 계속하십시오.

- 검토하고 확인할 수 있도록 설치 마법사에 대해 선택한 모든 설정이 나열됩니다. 변경해야 할 사항이 있으면 뒤로 돌아가서 동일하게 변경하거나 다음을 클릭하여 다음 페이지로 진행합니다.

- 설치를 진행할 준비가 되었음을 표시합니다. 준비가 되면 다음을 클릭하여 설치를 시작합니다.

- 설치가 완료될 때까지 기다리십시오. 동일한 확인이 표시됩니다.

- 완료되면
Stack Builder선택을 취소하고 마침을 클릭하여 설치 마법사를 종료할 수 있습니다. 시작 메뉴를 클릭하고SQL Shell (psql)검색하고 해당 아이콘을 클릭하여psql셸을 엽니다.

- 연결 세부 정보를 지정한 후 PostgreSQL 인스턴스와 상호 작용할 수 있는
SQL Shell (psql)열립니다. 설치 마법사에서postgres사용자에 대해 지정된 암호를 입력해야 하는 암호를 제외하고Enter를 누르면 모든 항목을 기본값으로 선택할 수 있습니다. 그러면postgres=#프롬프트가 표시됩니다.

PostgreSQL에 연결
postgres 사용자는 DB 인스턴스에 대한 superadmin 액세스 권한이 있는 설치 후 자동으로 생성됩니다. Linux에서 권한 있는 사용자는 다음과 같이 이 계정으로 전환할 수 있습니다.
$ sudo su - postgres 일단 들어가면 postgres 사용자 비밀번호를 다음과 같이 재설정할 수 있습니다.
$ psql -c "alter user postgres with password '[email protected]'" 그런 다음 다음과 같이 psql 을 사용하여 PostgreSQL 프롬프트를 시작합니다.
$ psql그러면 PostgreSQL 프롬프트가 나타납니다.
$ psql psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)) Type "help" for help. postgres=#이 프롬프트에서 데이터베이스와 상호 작용하고 DB 관리자 또는 사용자 작업을 수행할 수 있습니다. 데모로, 아래 단계는 DB와 사용자를 생성한 다음 새 사용자에게 새 데이터베이스에서 작업할 권한을 할당합니다.
postgres=# CREATE DATABASE geekflaredb; CREATE DATABASE postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser; GRANT postgres=# 그런 다음 \l 명령을 사용하여 DB를 나열할 수 있습니다.
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- geekflaredb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | geekuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#이제 다음을 사용하여 간단히 DB에 연결할 수 있습니다.
postgres=# \c geekflaredb You are now connected to database "geekflaredb" as user "postgres". geekflaredb=#요약
PostgreSQL은 견고성, 기능 세트 및 확장성으로 인해 엔터프라이즈 세계에서 널리 채택된 데이터베이스 중 하나입니다. 배우기 쉽고 SQL 표준과 호환되도록 노력합니다.
공식 사이트에 PostgreSQL에 대한 자습서가 있습니다.
