CentOS PostgreSQL 설치 방법
- Database
- 2023. 5. 28.
리눅스 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
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)
'Database' 카테고리의 다른 글
SQL, SUM 함수 사용법 (합계 계산) (0) | 2023.05.30 |
---|---|
PostgreSQL 백업 및 복구 방법 (0) | 2023.05.29 |
MongoDB 백업 및 복원 방법 (0) | 2023.05.28 |
CentOS 7 MongoDB 설치 방법 (YUM) (0) | 2023.05.27 |
MYSQL 테이블 JOIN 걸어서 UPDATE 방법 (0) | 2023.05.24 |