PostgreSQL 설치 및 초기 설정

PostgreSQLPostgreSQLIntermediate
지금 연습하기

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

이 랩에서는 LabEx VM 에 PostgreSQL 을 설치하고 초기 설정을 수행합니다. 목표는 PostgreSQL 을 실행하고 기본 기능을 확인하는 것입니다.

먼저 패키지 목록을 업데이트하고 postgresql-contrib 패키지와 함께 PostgreSQL 서버를 설치합니다. 설치 후, pg_isready 명령을 사용하여 PostgreSQL 서비스가 실행 중이며 연결을 허용하는지 확인합니다. 마지막으로 기본 데이터베이스를 살펴보고 서버 상태 및 기본 구성을 확인합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 72.9%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"]) postgresql/PostgreSQLGroup -.-> postgresql/db_setup("Create New Database") postgresql/PostgreSQLGroup -.-> postgresql/db_access("Connect To Database") postgresql/PostgreSQLGroup -.-> postgresql/db_status("Check Database Status") postgresql/PostgreSQLGroup -.-> postgresql/sys_version("Get Server Version") subgraph Lab Skills postgresql/db_setup -.-> lab-550900{{"PostgreSQL 설치 및 초기 설정"}} postgresql/db_access -.-> lab-550900{{"PostgreSQL 설치 및 초기 설정"}} postgresql/db_status -.-> lab-550900{{"PostgreSQL 설치 및 초기 설정"}} postgresql/sys_version -.-> lab-550900{{"PostgreSQL 설치 및 초기 설정"}} end

PostgreSQL 설치 및 설치 확인

이 단계에서는 LabEx VM 에 PostgreSQL 을 설치하고 설치가 성공적으로 완료되었는지 확인합니다. PostgreSQL 은 강력한 오픈 소스 관계형 데이터베이스 관리 시스템 (RDBMS) 입니다.

먼저, 업그레이드 및 새로운 설치를 위해 패키지 목록을 업데이트합니다. LabEx VM 에서 터미널을 엽니다. 터미널 아이콘은 데스크톱에서 찾을 수 있습니다.

다음 명령을 실행합니다.

sudo apt update

이 명령은 사용 가능한 패키지 및 해당 버전의 목록을 업데이트하지만, 어떤 패키지도 설치하거나 업그레이드하지 않습니다. 패키지 목록이 업데이트되고 있음을 나타내는 출력을 볼 수 있습니다.

다음으로, PostgreSQL 서버와 postgresql-contrib 패키지를 설치합니다. postgresql-contrib 패키지는 종종 유용한 추가 유틸리티 및 기능을 제공합니다.

다음 명령을 실행합니다.

sudo apt install postgresql postgresql-contrib -y
PostgreSQL and postgresql-contrib installation

-y 플래그는 설치 과정에서 발생하는 모든 프롬프트에 자동으로 "yes"로 응답합니다. 이 명령은 PostgreSQL 및 관련 패키지를 다운로드하여 설치합니다. 패키지가 다운로드 및 설치되는 동안 많은 출력을 보게 됩니다.

설치가 완료된 후, PostgreSQL 이 실행 중인지 확인해야 합니다. PostgreSQL 은 설치 후 자동으로 시작되어야 합니다.

PostgreSQL 서비스의 상태를 확인하려면 다음 명령을 실행합니다.

sudo service postgresql status

또한 pg_isready 명령을 사용하여 PostgreSQL 서버가 실행 중이며 연결을 허용하는지 확인할 수 있습니다.

다음 명령을 실행합니다.

pg_isready

PostgreSQL 이 실행 중인 경우, 다음과 같은 출력을 볼 수 있습니다.

/var/run/postgresql:5432 - accepting connections

PostgreSQL 이 실행 중이지 않은 경우, 다음과 같은 오류 메시지가 표시될 수 있습니다.

/var/run/postgresql:5432 - no response

"no response" 오류가 발생하면 PostgreSQL 서비스를 다시 시작해 보십시오. 다음 명령을 시도할 수 있습니다.

sudo service postgresql restart

그런 다음 pg_isready를 다시 실행하여 상태를 확인합니다.

PostgreSQL installation verification

pg_isready가 "accepting connections"를 표시하면 PostgreSQL 이 성공적으로 설치되어 실행 중임을 확인합니다.

PostgreSQL 셸 (psql) 에 접속하기

이 단계에서는 PostgreSQL 데이터베이스와 상호 작용하기 위한 명령줄 도구인 psql인 PostgreSQL 셸에 접속합니다. psql을 사용하면 SQL 쿼리를 실행하고, 데이터베이스를 관리하며, 기타 관리 작업을 수행할 수 있습니다.

기본적으로 PostgreSQL 은 PostgreSQL 슈퍼유저에 해당하는 postgres라는 Unix 사용자를 생성합니다. psql 셸에 접속하려면, postgres 사용자로 전환하거나 sudo를 사용하여 postgres 사용자로 명령을 실행할 수 있습니다.

먼저, postgres 사용자로 전환해 보겠습니다. 다음 명령을 실행합니다.

sudo -i -u postgres

이 명령은 현재 사용자를 postgres로 전환합니다. 프롬프트가 새 사용자를 반영하도록 변경되는 것을 확인할 수 있습니다.

이제 postgres 사용자로 로그인했으므로, psql 셸에 접속할 수 있습니다. 다음 명령을 실행합니다.

psql

이 명령은 psql 셸을 엽니다. 다음과 같은 프롬프트를 볼 수 있습니다.

postgres=#

이는 PostgreSQL 서버에 연결되었으며 이제 SQL 명령을 실행할 수 있음을 나타냅니다.

psql 셸을 종료하려면, \q를 입력하고 Enter 키를 누릅니다.

postgres=## \q

그러면 postgres 사용자의 셸로 돌아갑니다.

postgres 사용자의 셸을 종료하고 원래 사용자 (labex) 로 돌아가려면, exit를 입력하고 Enter 키를 누릅니다.

exit

또는 sudo를 사용하여 labex 사용자로 직접 psql 셸에 접속할 수 있습니다. 이렇게 하면 사용자를 전환할 필요가 없습니다.

PostgreSQL psql shell connection

다음 명령을 실행합니다.

sudo -u postgres psql

이 명령은 postgres 사용자로 psql 명령을 실행합니다. psql 셸에 직접 연결됩니다.

다시, psql 셸을 종료하려면, \q를 입력하고 Enter 키를 누릅니다.

postgres=## \q

그러면 labex 사용자의 셸로 돌아갑니다.

요약하면, psql 셸에 접속하는 두 가지 방법, 즉 postgres 사용자로 전환하는 방법과 sudo를 사용하는 방법을 배웠습니다. 두 방법 모두 동일한 결과를 얻지만, 경우에 따라 sudo를 사용하는 것이 더 편리할 수 있습니다.

기본 데이터베이스 탐색

이 단계에서는 PostgreSQL 을 설치할 때 생성되는 기본 데이터베이스를 탐색합니다. 이러한 데이터베이스는 PostgreSQL 서버에 대한 필수 기능과 정보를 제공합니다.

먼저, postgres 사용자로 psql 셸에 접속합니다. 다음 명령을 사용할 수 있습니다.

sudo -u postgres psql

psql 셸에 접속한 후, \l 명령을 사용하여 사용 가능한 데이터베이스를 나열할 수 있습니다. 다음 명령을 실행합니다.

postgres=## \l

이 명령은 데이터베이스 목록과 소유자, 인코딩 및 접근 권한에 대한 정보를 표시합니다. 최소한 세 개의 데이터베이스가 표시되어야 합니다.

  • postgres: 처음 psql 셸에 접속할 때 연결되는 기본 데이터베이스입니다. 이는 종종 관리 작업에 사용됩니다.
  • template0: 이 데이터베이스는 새 데이터베이스를 생성하기 위한 템플릿으로 사용됩니다. 이 데이터베이스는 수정하지 않아야 합니다.
  • template1: 이것은 새 데이터베이스를 생성하는 데 사용되는 또 다른 템플릿 데이터베이스입니다. 표준 템플릿이며 사용자 정의할 수 있습니다.
List of available PostgreSQL databases

특정 데이터베이스에 연결하려면, 데이터베이스 이름 다음에 \c 명령을 사용할 수 있습니다. 예를 들어, postgres 데이터베이스에 연결하려면 다음 명령을 실행합니다.

postgres=## \c postgres

이제 postgres 데이터베이스에 연결되었음을 나타내는 메시지가 표시됩니다.

You are now connected to database "postgres" as user "postgres".

이제 postgres 데이터베이스에 연결되었으므로, 해당 내용을 탐색할 수 있습니다. 예를 들어, \dt 명령을 사용하여 데이터베이스의 테이블을 나열할 수 있습니다.

postgres=## \dt

이 명령은 현재 데이터베이스의 테이블 목록을 표시합니다. postgres 데이터베이스는 주로 관리 작업에 사용되므로, 사용자 정의 테이블이 없을 수 있습니다.

또한 \conninfo 명령을 사용하여 현재 데이터베이스 연결에 대한 정보를 볼 수 있습니다.

postgres=## \conninfo

이 명령은 데이터베이스 이름, 사용자, 호스트 및 포트와 같은 정보를 표시합니다.

현재 데이터베이스에서 연결을 끊고 기본 연결로 돌아가려면, 데이터베이스 이름을 지정하지 않고 \c 명령을 사용할 수 있습니다.

postgres=## \c

그러면 일반적으로 postgres 데이터베이스인 기본 데이터베이스에 다시 연결됩니다.

Connecting to postgres database

마지막으로, \q를 입력하고 Enter 키를 눌러 psql 셸을 종료합니다.

postgres=## \q

그러면 labex 사용자의 셸로 돌아갑니다.

이 단계에서는 사용 가능한 데이터베이스를 나열하고, 특정 데이터베이스에 연결하며, psql 셸을 사용하여 해당 내용을 탐색하는 방법을 배웠습니다.

서버 상태 및 기본 구성 확인

이 단계에서는 PostgreSQL 서버 상태를 확인하고 몇 가지 기본 구성 설정을 탐색합니다.

앞서 언급했듯이, LabEx VM 은 Docker 컨테이너에서 실행되므로 systemctl 명령이 예상대로 작동하지 않을 수 있습니다. 서버 상태를 확인하기 위해 주로 pg_isreadypsql을 사용합니다.

먼저, PostgreSQL 서버가 실행 중인지 다시 확인해 보겠습니다. 다음 명령을 실행합니다.

pg_isready

PostgreSQL 이 실행 중이면 다음 출력을 볼 수 있습니다.

/var/run/postgresql:5432 - accepting connections

다음으로, psql 셸을 사용하여 몇 가지 기본 구성 설정을 확인해 보겠습니다. postgres 사용자로 psql 셸에 접속합니다.

sudo -u postgres psql

psql 셸에 접속한 후, 다음 SQL 쿼리를 사용하여 PostgreSQL 버전을 확인할 수 있습니다.

SELECT version();

psql 셸에서 이 쿼리를 실행합니다. 다음과 유사한 출력을 볼 수 있습니다.

                                                                version
----------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.17 (Ubuntu 14.17-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
(1 row)

이는 서버에 설치된 PostgreSQL 버전을 보여줍니다.

현재 데이터베이스 사용자도 확인할 수 있습니다.

SELECT user;

출력은 다음과 같습니다.

  user
----------
 postgres
(1 row)

현재 연결된 데이터베이스 이름을 확인하려면 다음을 사용합니다.

SELECT current_database();

출력은 다음과 같습니다.

 current_database
------------------
 postgres
(1 row)

구성 설정을 보려면 SHOW 명령을 사용할 수 있습니다. 예를 들어, 서버가 연결을 수신하는 IP 주소를 지정하는 listen_addresses 설정을 확인하려면 다음 명령을 실행합니다.

SHOW listen_addresses;

출력은 다음과 같을 것입니다.

 listen_addresses
--------------------
 *
(1 row)

*는 서버가 사용 가능한 모든 IP 주소에서 수신 대기 중임을 나타냅니다.

확인할 또 다른 유용한 설정은 port로, 서버가 연결을 수신하는 포트 번호를 지정합니다.

SHOW port;

출력은 다음과 같습니다.

 port
------
 5432
(1 row)

이는 서버가 기본 PostgreSQL 포트인 포트 5432 에서 수신 대기 중임을 나타냅니다.

PostgreSQL psql 终端输出示例

마지막으로, \q를 입력하고 Enter 키를 눌러 psql 셸을 종료합니다.

postgres=## \q

그러면 labex 사용자의 셸로 돌아갑니다.

이 단계에서는 pg_isreadypsql 셸을 사용하여 PostgreSQL 서버 상태를 확인하고 몇 가지 기본 구성 설정을 탐색하는 방법을 배웠습니다.

요약

이 랩에서는 apt updateapt install postgresql postgresql-contrib -y를 사용하여 LabEx VM 에 PostgreSQL RDBMS 를 설치했습니다. -y 플래그는 설치 중에 프롬프트를 자동으로 수락하는 데 사용되었습니다.

설치 후, PostgreSQL 서비스가 실행 중이며 연결을 수락하는지 확인했습니다. LabEx VM 이 Docker 컨테이너에서 실행되기 때문에, 서버 상태를 확인하기 위해 systemctl status postgresql 대신 pg_isready 명령을 사용했습니다. 서버가 실행 중일 때 pg_isready의 예상 출력은 /var/run/postgresql:5432 - accepting connections입니다.

OSZAR »