CentOS PostgreSQL 설치 방법

리눅스 CentOS 배포판에 PostgreSQL을 설치하는 방법을 알아보겠습니다. postgresql은 설치와 로그인 과정에서 mysql, mariadb 등과 조금 다른 점이 있기 때문에 이 부분은 확인이 필요합니다.

PostgreSQL 설치 방법

1. yum 레포지토리 설치

이 글은 리눅스 CentOS 7 버전을 기준으로 설명합니다. 리눅스 배포판에 따라 설치해야 하는 레포지토리 주소가 다르기 때문에 고려해서 설치해 주세요. CentOS 7 버전은 아래의 명령어로 yum 레포지토리를 설치하면 됩니다.

[root@localhost ~]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

 

PostgreSQL YUM 리포지토리를 설치하는 건 YUM이 PostgreSQL 패키지를 찾아 설치할 수 있도록 해당 리포지토리의 위치와 정보를 시스템에 알려주는 작업입니다. 참고로 postgresql 공식 레포지토리 주소는 https://download.postgresql.org 입니다. 이 주소로 접속해서 디렉토리 구조를 확인해 보면 레포지토리 url이 어떻게 구성되는지 알 수 있습니다.

 

EL-7-x86_64는 Linux 배포판의 특정 버전과 아키텍처를 의미합니다. EL(Enterprise Linux)은 CentOS나 RHEL(Red Hat Enterprise Linux) 같은 엔터프라이즈급 Linux 배포판을, 7은 엔터프라이즈 Linux 배포판의 특정 메이저 버전을 지칭합니다. x86_64은 사용하는 컴퓨터의 아키텍처입니다.

 

2. PostgreSQL 서버 설치

원하는 버전의 postgresql 서버를 설치합니다. 저는 12버전으로 진행하겠습니다. 원하시는 버전이 따로 있으면 해당 부분의 숫자만 바꿔서 하시면 됩니다.

[root@localhost ~]# yum install -y postgresql12 postgresql12-server                                                                             er

 

3. 초기 데이터베이스 설정

postgresql은 설치 이후에 직접 인스턴스에 대한 기본 파일 시스템을 생성해줘야 합니다. mysql 같은 다른 RDBMS에서는 설치 시 초기 데이터베이스를 자동으로 생성하고, 시작하기 때문에 필요하지 않은 과정이지만, postgresql에서는 필수입니다.

[root@localhost ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK

 

4. PostgreSQL 시작

필요에 따라 postgresql이 자동 시작될 수 있도록 설정합니다.

[root@localhost ~]# systemctl enable postgresql-12
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-12.service to /usr/lib/systemd/system/postgresql-12.service.

 

postgresql을 시작합니다.

[root@localhost ~]# systemctl start postgresql-12

 

정상 실행되었는지 확인합니다.

[root@localhost ~]# systemctl status postgres

 

정상 active 상태

 

5. 접속 및 로그인

postgresql에서는 최초 슈퍼유저(superuser)가 root가 아닌 postgresql입니다. 그래서 root 계정으로 접속을 시도하면 postgresql 데이터베이스에 root라는 사용자(role)가 존재하지 않는다는 에러가 발생합니다.

 

postgres라는 계정으로 전환해서 접속을 시도해야 합니다.

[root@localhost ~]# sudo -i -u postgres
-bash-4.2$

 

접속 명령어는 psql입니다.

-bash-4.2$ psql
psql (12.15)
Type "help" for help.

postgres=#

 

6. 샘플 생성 테스트

postgres 데이터베이스에 users 테이블을 만들어 값을 넣어보겠습니다.

postgres=# CREATE TABLE users (
postgres(#     id SERIAL PRIMARY KEY,
postgres(#     name VARCHAR(100),
postgres(#     email VARCHAR(100)
postgres(# );
CREATE TABLE

 

postgres=# INSERT INTO users (name, email) VALUES ('User 1', 'user1@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 2', 'user2@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 3', 'user3@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 4', 'user4@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 5', 'user5@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 6', 'user6@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 7', 'user7@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 8', 'user8@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 9', 'user9@example.com');
INSERT 0 1
postgres=# INSERT INTO users (name, email) VALUES ('User 10', 'user10@example.com');
INSERT 0 1
postgres=#

 

insert한 값이 정상적으로 조회됩니다.

postgres=# SELECT * FROM users;
 id |  name   |       email
----+---------+--------------------
  1 | User 1  | user1@example.com
  2 | User 2  | user2@example.com
  3 | User 3  | user3@example.com
  4 | User 4  | user4@example.com
  5 | User 5  | user5@example.com
  6 | User 6  | user6@example.com
  7 | User 7  | user7@example.com
  8 | User 8  | user8@example.com
  9 | User 9  | user9@example.com
 10 | User 10 | user10@example.com
(10 rows)
반응형

댓글

Designed by JB FACTORY