본문 바로가기
정보관리(데이터베이스, DB)/PostgreSQL(포스트그레 에스큐엘)

Rocky Linux 9에 PostgreSQL 15를 설치하는 방법

by 3604 2023. 4. 28.
728x90

 

출처: https://ko.linux-console.net/?p=3649#gsc.tab=0

이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 록키 리눅스 9
  • 록키 리눅스 8.4

이 페이지에서

  1. 전제 조건
  2. 저장소 설정
  3. PostgreSQL 15 설치
  4. 사용자 인증 및 암호 암호화 설정\n
  5. PostgreSQL 사용자의 비밀번호 설정\n
  6. PostgreSQL에서 새 데이터베이스 및 사용자 생성
  7. 표 만들기 및 데이터 삽입\n
  8. 데이터 검색 및 데이터 업데이트
  9. 환경 정화\n
  10. 결론

PostgreSQL은 확장성과 SQL 준수에 중점을 둔 무료 오픈 소스 데이터베이스 관리 시스템입니다. PostgreSQL은 SQL(관계형) 및 JSON(비관계형) 쿼리를 모두 지원하는 고급 엔터프라이즈급 RDBMS(Relational Database Management System)입니다.

20년 이상 지원되는 매우 안정적인 데이터베이스 관리 시스템입니다. 오픈 소스 커뮤니티에서 개발했으며 안정성, 유연성, 기능 견고성 및 성능으로 인해 개발자와 시스템 관리자 사이에서 강력한 평판을 얻고 있습니다.

PostgreSQL은 웹 애플리케이션, 모바일 애플리케이션, 및 분석 응용 프로그램. 전 세계의 주목할만한 PostgreSQL 사용자로는 Reddit, Skype, Instagram, Disqus, The Guardian, Yandex, Bloomberg, Nokia, BMW 등이 있습니다.

이 튜토리얼은 Rocky Linux 9 서버에 최신 PostgreSQL 15를 설치하는 과정을 안내합니다. 또한 사용자/역할 생성, 데이터베이스 관리, 테이블 생성, 데이터 삽입 및 검색을 위한 PostgreSQL의 기본 사용법을 안내합니다.

전제 조건

이 가이드를 완료하려면 다음 요구 사항이 필요합니다.

 
  • A Rocky Linux 9 서버 - 이 예에서는 호스트 이름이 postgresql-rocky인 Rocky Linux를 사용합니다.\n
  • sudo/root 관리자 권한이 있는 루트가 아닌 사용자.\n
  • 허용 모드로 실행 중인 SELinux.\n

PostgreSQL 15 설치로 이동하겠습니다.

리포지토리 설정

이 연결 시점에 PostgreSQL 15는 Rocky Linux 리포지토리에서 사용할 수 없습니다. 따라서 PostgreSQL 15를 설치하려면 공식 PostgreSQL 리포지토리를 사용해야 합니다.

첫 번째 단계는 Rocky Linux 9 서버에 PostgreSQL 리포지토리를 설치하고 추가하는 것입니다.

 

아래 명령을 실행하여 공식 PostgreSQL 리포지토리를 시스템에 추가합니다. 이 리포지토리는 여러 RHEL 기반 배포 버전 9에 사용할 수 있습니다.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

프로세스 중에 다음 출력을 받게 됩니다.

이제 아래 dnf 명령을 통해 사용 가능한 리포지토리 목록을 확인합니다.

sudo dnf repolist

이 스크린샷과 유사한 출력이 표시됩니다. 최신 버전의 PostgreSQL 15를 포함하여 여러 버전의 PostgreSQL 리포지토리를 Rocky Linux에 추가했습니다.

PostgreSQL 리포지토리가 추가되면 다음 단계에서 PostgreSQL 15를 설치하고 구성하는 방법을 살펴보겠습니다.

PostgreSQL 15 설치

이 단계에서는 Rocky Linux에 PostgreSQL 15를 설치하고 PostgreSQL 데이터베이스 및 구성을 초기화한 다음 PostgreSQL 15 서비스를 시작하고 활성화합니다.

 

아래 dnf 명령을 실행하여 PostgreSQL 15 서버를 설치합니다. 구성을 묻는 메시지가 표시되면 y를 입력한 다음 ENTER를 눌러 계속 진행합니다.

sudo dnf install postgresql15-server postgresql15-contrib

또한 PostgreSQL 리포지토리에 대한 GPG 키를 수락하라는 메시지가 표시되면 y를 입력하여 확인하고 Enter 키를 눌러 계속 진행합니다.

PostgreSQL 15가 설치된 후 아래 명령을 실행하여 PostgreSQL 데이터베이스 및 구성을 초기화합니다.

sudo postgresql-15-setup initdb

이렇게 하면 Initializing database ... OK와 같은 출력이 표시됩니다.

이제 아래의 systemctl 명령 유틸리티를 실행하여 PostgreSQL 15 서비스를 시작하고 활성화하십시오.

sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

마지막으로 아래의 systemctl 명령을 통해 PostgreSQL 15 서비스를 확인합니다. 이렇게 하면 PostgreSQL 15 서버가 활성화되고 실행됩니다.

sudo systemctl status postgresql-15

이 스크린샷과 같은 출력이 표시됩니다. PostgreSQL 15의 상태가 실행 중이고 활성화되어 있습니다. 즉, 부팅 시 서비스가 자동으로 시작됩니다.

이제 PostgreSQL 15 서버를 설치했고 활성화되어 실행 중입니다. 다음 단계에서는 PostgreSQL 사용자에 대한 인증 방법을 설정합니다.

사용자 인증 및 암호 암호화 설정

PostgreSQL 15를 설치하고 실행하면 이제 PostgreSQL 인증 구성을 진행할 수 있습니다. 이는 PostgreSQL 구성 디렉터리의 구성 파일 pg_hba.conf를 통해 구성할 수 있습니다.

다음 명령을 통해 PostgreSQL 셸에 로그인합니다.

sudo -u postgres psql
 

로그인한 후 아래 쿼리를 실행하여 인증 방법을 저장한 기본 PostgreSQL 구성을 확인하고 PostgreSQL 서버에서 사용하는 현재 암호 암호화를 확인합니다.

SHOW hba_file;
SHOW password_encryption;

다음과 유사한 출력이 표시됩니다. 인증을 위한 기본 PostgreSQL 구성 파일은 /var/lib/pgsql/15/data/pg_hba.conf이고 활성화된 기본 암호 인증은 scram-sha-입니다. 256.

이제 아래의 nano 편집기 명령을 사용하여 PostgreSQL 구성 파일 /var/lib/pgsql/15/data/pg_hba.conf을 엽니다.

sudo nano /var/lib/pgsql/15/data/pg_hba.conf

다음 줄을 사용하여 기본 구성을 변경합니다. 이렇게 하면 비밀번호 인증이 localhost에서 scram-sha-256으로 변경됩니다. 로컬 연결의 경우 기본 피어를 사용하거나 scram-sha-256 암호 인증을 사용할 수 있습니다.

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

파일을 저장하고 완료되면 편집기를 종료합니다.

그런 다음 아래 systemctl 명령을 실행하여 PostgreSQL 15 서비스를 다시 시작하고 변경 사항을 적용합니다.

sudo systemctl restart postgresql-15

마지막으로 구성을 확인하려면 아래 명령을 통해 PostgreSQL 셸에 로그인합니다.

sudo -u postgres psql

아래 쿼리를 사용하여 연결 세부 정보를 확인합니다. 피어 unix_socket 로컬 연결을 통해 PostgreSQL에 연결된 것을 볼 수 있습니다.

\conninfo

이제 PostgreSQL 호스트를 localhost 127.0.0.1로 지정하면 scram-sha-256을 사용하는 비밀번호 인증을 통해 연결되는 것을 볼 수 있습니다.

sudo -u postgres psql -U postgres -h 127.0.0.1
\conninfo

PostgreSQL 사용자의 비밀번호 설정

기본적으로 PostgreSQL은 postgres라는 이름으로 새로운 시스템 사용자와 PostgreSQL 사용자를 생성했습니다. 그리고 이 단계에서는 명령줄을 통한 Linux 사용자 postgres와 PostgreSQL 셸을 통한 PostgreSQL 사용자 postgres 모두에 대한 새 암호를 설정합니다.

시작하려면 아래 명령을 실행하여 사용자 postgres의 새 암호를 만듭니다. 새 암호를 입력하고 반복합니다. postgres 사용자에 대해 강력한 암호를 사용해야 합니다.

sudo passwd postgres

다음으로 아래 명령을 통해 PostgreSQL 셸에 로그인합니다.

sudo -u postgres psql

아래 쿼리를 실행하여 기본 PostgreSQL 사용자 postgres의 암호를 변경합니다. 그리고 다음 쿼리에서 비밀번호를 반드시 사용하십시오.

ALTER USER postgres WITH PASSWORD 'p4ssw0rdPostgreSQL15';
exit

PostgreSQL 셸에서 로그아웃하려면 exit를 입력하십시오.

마지막으로 아래 명령을 통해 PostgreSQL 서버에 다시 로그인합니다.

sudo -u postgres psql -U postgres -h 127.0.0.1

암호를 묻는 메시지가 표시되면 생성한 PostgreSQL 서버 암호를 입력합니다. 그런 다음 ENTER를 누릅니다.

성공하면 아래 스크린샷에 PostgreSQL 셸이 표시되어야 합니다. 다음 쿼리를 통해 연결 상태를 확인할 수도 있습니다.

\conninfo

이 단계에서는 기본 PostgreSQL 사용자 postgres의 암호를 변경하고 구성했습니다. 또한 기본 UNIX 사용자 postgres에 대한 새 암호를 만들었습니다. 다음 단계에서는 새 PostgreSQL 사용자를 만들고 애플리케이션을 위한 새 데이터베이스를 만드는 방법을 배웁니다.

PostgreSQL에서 새 데이터베이스 및 사용자 생성

이 단계에서는 PostgreSQL 셸을 통해 새 PostgreSQL 사용자 및 데이터베이스를 만드는 방법을 배웁니다. 또한 PostgreSQL 서버에서 사용 가능한 데이터베이스 및 사용자 목록을 확인하는 방법도 배웁니다.

먼저 PostgreSQL 셸에 로그인했는지 확인합니다. 또는 아래 명령을 통해 로그인할 수 있습니다.

sudo -u postgres psql

아래 쿼리를 사용하여 새 PostgreSQL 사용자를 생성합니다. 이 예에서는 데이터베이스 생성을 위한 CREATEDB 권한과 PostgreSQL에서 역할 생성을 위한 CREATEROLE" 권한을 가진 새 사용자 alice를 생성합니다.

CREATE USER alice WITH CREATEDB CREATEROLE PASSWORD 'p4ssw0rdAlice';

다음으로 아래 PostgreSQL 쿼리를 사용하여 새 데이터베이스를 만듭니다. 이 예에서는 alice 데이터베이스와 testdb 데이터베이스라는 두 개의 데이터베이스를 생성합니다. 두 데이터베이스의 소유자는 모두 동일하며 사용자는 Alice입니다.

CREATE DATABASE alice OWNER alice;
CREATE DATABASE testdb OWNER alice;

이제 PostgreSQL 서버에서 사용자 목록과 데이터베이스 목록을 확인하십시오.

\du
\l

PostgreSQL 서버에서 목록 사용자를 표시하기 위한 \\du 쿼리의 출력입니다. 새 사용자 alice가 CREATEDB  CREATEROLE 권한으로 생성됩니다.

PostgreSQL 서버의 데이터베이스 목록을 표시하기 위한 \\l 쿼리의 출력입니다. 새로운 데이터베이스 alice와 testdb가 생성된 것을 볼 수 있습니다.

마지막으로 새 PostgreSQL 사용자를 확인하기 위해 새 사용자 alice를 통해 PostgreSQL 셸에 로그인합니다.

아래 명령을 실행하여 alice 사용자를 통해 PostgreSQL 셸에 로그인합니다. 암호를 묻는 메시지가 표시되면 암호를 입력하고 ENTER를 눌러 확인합니다.

sudo -u postgres psql -U alice -h 127.0.0.1

PostgreSQL 셸에 로그인한 후 아래 쿼리를 실행하여 현재 세부 연결을 표시합니다.

\conninfo

다음과 유사한 출력을 수신해야 합니다. 사용자 alice를 통해 PostgreSQL 서버에 연결했고 데이터베이스 alice에 연결했습니다.

이것으로 이제 PostgreSQL 사용자와 데이터베이스를 만들었습니다. 또한 새 사용자를 통해 PostgreSQL 셸에 로그인했습니다. 다음 단계에서는 테이블을 만들고 일부 데이터를 테이블에 삽입하는 방법을 배웁니다.

테이블 생성 및 데이터 삽입

새 PostgreSQL 사용자 및 데이터베이스를 만든 후에는 이제 테이블을 만들고 PostgreSQL에 데이터를 삽입하는 방법을 배웁니다. 또한 PostgreSQL에서 다른 데이터베이스로 전환하는 방법과 PostgreSQL 데이터베이스에서 목록 테이블을 확인하는 방법을 배웁니다.

시작하기 전에 사용자 alice로 PostgreSQL 셸에 로그인했는지 확인하십시오.

데이터베이스 testdb를 사용할 수 있는지 데이터베이스 목록을 확인하십시오.

\l

이제 다음 쿼리를 통해 데이터베이스 testdb로 전환합니다. 당신은 사용할 수 있습니다

\connect testdb

데이터베이스 testdb로 전환한 후 PostgreSQL 셸은 testdb=>과 같아야 합니다.

다음으로 아래 쿼리를 실행하여 id, name, age, < em>주소 및 급여.

CREATE TABLE users (
   id INT PRIMARY KEY     NOT NULL,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);

출력 CREATE TABLE은 데이터베이스에 새 테이블이 생성되었음을 확인합니다.

이제 아래 쿼리를 통해 현재 데이터베이스의 테이블 목록을 확인합니다. 생성된 users 테이블이 표시되어야 합니다.

\dt

새 테이블을 만든 후 INSERT 쿼리를 통해 일부 데이터를 테이블에 삽입합니다.

아래 INSERT 쿼리를 실행하여 users 테이블에 일부 데이터를 추가합니다.

INSERT INTO users (id,name,age,address,salary) VALUES (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (2, 'Jesse', 35, 'Mexico', 30000.00);
INSERT INTO users (id,name,age,address,salary) VALUES (3, 'Linda', 27, 'Canada', 40000.00);

출력 INSERT 0 1은 새 데이터가 테이블에 추가되었음을 확인합니다.

테이블이 생성되고 일부 데이터가 PostgreSQL에 추가되면 PostgreSQL에서 데이터를 검색하고 PostgreSQL에서 사용 가능한 데이터를 업데이트하는 방법을 배우게 됩니다.

데이터 검색 및 데이터 업데이트

PostgreSQL에서 테이블을 만들고 INSERT 쿼리를 통해 일부 데이터를 삽입한 후에는 SELECT 쿼리를 통해 데이터를 검색하는 방법과 UPDATE 쿼리를 통해 특정 열의 데이터를 업데이트하거나 변경하는 방법을 배웁니다.

데이터를 검색하려면 아래 PostgreSQL 쿼리를 실행합니다. PostgresSQL 테이블 users에서 데이터를 검색합니다.

SELECT * FROM users;

다음과 같은 출력을 받게 됩니다. users 테이블의 모든 데이터가 PostgreSQL 셸에 표시됩니다.

아래 쿼리를 통해 특정 열에서 데이터를 검색할 수도 있습니다. 이 쿼리는 특정 열 이름, 나이 및 급여에서 데이터를 검색합니다.

SELECT name,age,salary FROM users;

다음은 터미널에서 수신할 출력입니다.

다음으로 아래 UPDATE 쿼리를 실행하여 PostgreSQL 데이터베이스의 데이터를 변경합니다. 이렇게 하면 열 이름 값 Paul에 대한 열 주소의 데이터가 스웨덴으로 업데이트됩니다.

UPDATE users SET address = 'Sweden' WHERE name = 'Paul';

출력 UPDATE 1은 데이터가 업데이트되고 변경되었음을 확인합니다.

아래 쿼리를 실행하여 데이터베이스의 데이터가 변경되었는지 확인하십시오.

SELECT * FROM users;

다음과 유사한 출력이 표시됩니다. address 열이 name = Paul에 대해 업데이트됩니다.

이 시점에서 PostgreSQL 서버에서 사용자, 데이터베이스, 테이블 생성, 데이터 삽입, 데이터 검색 및 데이터 업데이트를 위한 PostgreSQL 쿼리의 기본 사용법을 배웠습니다.

환경 청소

이 단계에서는 생성한 데이터베이스와 사용자를 삭제하여 PostgreSQL 15 서버 환경을 정리합니다. 따라서 PostgreSQL 15 설치를 정리했지만 사용하지 않는 사용자, 데이터베이스 및 테이블을 제거하여 PostgreSQL 서버를 정리하는 방법도 배웠습니다.

시작하기 전에 기본 postgres 사용자로 PostgreSQL에 로그인하십시오.

sudo -u postgres psql

testdb 데이터베이스로 전환하려면

\connect testdb;

아래 쿼리를 실행하여 users 테이블을 삭제한 다음 현재 데이터베이스의 테이블 목록을 확인하십시오.

DROP TABLE users;
\dt

출력 어떤 관계도 찾지 못했습니다. users 테이블이 제거되었는지 확인합니다.

다음으로 postgres 데이터베이스로 전환하고 데이터베이스 alice 및 testdb를 삭제합니다.

\connect postgres
DROP DATABASE alice;
DROP DATABASE testdb;

아래 쿼리를 통해 데이터베이스 목록을 확인합니다. alice  testdb 데이터베이스가 모두 PostgreSQL 서버에서 제거된 것을 볼 수 있습니다.

\l

마지막으로 아래 쿼리를 실행하여 사용자 alice를 삭제합니다. 그런 다음 PostgreSQL 서버에서 사용자 목록을 확인합니다.

DROP USER alice;
\du

사용자 alice가 PostgreSQL 서버에서 삭제되었다는 출력을 받게 됩니다.

이것으로 PostgreSQL 서버를 정리하고 PostgreSQL 서버에서 사용자, 데이터베이스 및 테이블을 삭제하기 위한 기본 쿼리도 배웠습니다.

결론

이 가이드에서는 Rocky Linux 9 서버에 최신 버전의 PostgreSQL 15를 설치하는 방법을 설명했습니다. 공식 PostgreSQL 리포지토리를 통해 PostgreSQL을 설치했으며 PostgreSQL 인증의 기본 구성도 배웠습니다.

그 외에도 PostgreSQL 서버를 사용하는 방법을 배웠습니다. 사용자 생성, 사용자 암호 변경, 데이터베이스 및 테이블 생성, 데이터 삽입, 데이터 쿼리, 데이터 업데이트 및 사용하지 않는 테이블, 데이터베이스 및 사용자를 제거하여 PostgreSQL 서버 정리까지.

PostgreSQL은 인터넷의 현대 산업에서 가장 많이 사용되는 엔터프라이즈 RDBMS(관계형 데이터베이스 관리 시스템)입니다. 이를 통해 다음 PostgreSQL의 다른 쿼리를 확인하고 학습하거나 여러 서버에서 고가용성 PostgreSQL을 배포하는 방법도 학습할 수 있습니다.

728x90
반응형