본문 바로가기
아이티 공부/PostgreSQL

PostgreSQL 리눅스(RHEL6.5)에 설치하는 방법

by Klero 2017. 2. 23.

postgresql 장점

 

- 라이센스에 대한 비용 문제를 고민할 필요가 전혀 없다.
- 상용 데이터베이스 보다 유지보수 비용이 감소하며 , 성능 튜빙에 대한 비용이 낮다.
- 오픈 소스 코드이기 때문에 확장시 무료로 사용할 수 있다.
- 원래는 유닉스 기반이지만, 8.0 부터는 윈도우도 지원하고 있다.
- 여러 행 데이터에 대한 저장 전략이 높은 볼륨 환경을 위해 설계되어 있다.
- GUI 인터페이스를 통해 DB 설계 및 관리를 할 수 있다.

 

 

테스트 환경 : RHEL 6.5 64Bit에 설치했으며, PostgreSQL 설치 버전은 아래와 같다.

 

 

 

 

1. [root@RobotLinuxPoC ~]# yum install postgresql-server

2. [root@RobotLinuxPoC ~]# vi /etc/passwd


데이터베이스가 root 계정으로 기동되는 것은 보안상 많은 취약점을 가지고 있다.
그래서 postgresql 데이터베이스는 root 계정 대신 postgres 라는 계정으로 데이터베이스를 기동할 수 있다.
postgersql 데이터베이스를 설치하면 아래처럼 postgres 계정이 자동으로 생성되는 것을 볼 수 있다.

 




3. [root@RobotLinuxPoC ~]# passwd postgres
Changing password for user postgres.
Enter new UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@RobotLinuxPoC ~]#

위 명령어를 이용하여 postgres 유저의 패스워드를 변경한다.

4. [root@RobotLinuxPoC ~]# su - postgres
-bash-4.1$ cd /var/lib/pgsql
-bash-4.1$ ls -al
total 20
drwx------   4 postgres postgres 4096 Feb  1 14:02 .
drwxr-xr-x. 43 root     root     4096 Feb  1 13:48 ..
drwx------   2 postgres postgres 4096 Oct 14  2013 backups
-rw-r--r--   1 postgres postgres   85 Oct 14  2013 .bash_profile
drwx------   2 postgres postgres 4096 Oct 14  2013 data

데이터베이스 생성 경로는 postgresql을 실행하는 계정(postgres)의 환경변수에 지정하도록 되어 있다.
postgres 계정의 postgresql 데이터베이스 홈 디렉토리는 /var/lib/pgsql 이며

이 디렉토리에 존재하는 .bash_progile 의 파일이 프로파일이다.


이 프로파일을 열어보면 아래 처럼 되어 있다.
여기서 PGDATA가 postgresql의 데이터베이스가 생성되는 경로를 갖고 있는 환경 변수이고, postgresql을 기동할 때

데이터베이스 경로를 별도로 지정하지 않으면 이 변수의 경로를 데이터베이스 경로로 지정하여 기동된다.

 

 

 

만약 데이터베이스의 경로를 다른 위치로 변경하길 원한다면 .bash_profile의 PGDATA 경로를 변경 후 재로그인하면 된다.
* 참고로 이 경로의 변경은 아래 initdb를 실행하기 전에 하는 것이 좋다고 한다. 

 


5. initdb 실행을 통한 postgres 기본 데이터베이스 생성
initdb는 postgresql 설치 후 시스템 카탈로그를 포함하고 있는 postgres 기본 데이터베이스를 생성하는 명령어이다.
이 기본 데이터베이스는 postgres 이름으로 생성이 되며, 기본 데이터베이스 생성 후 psql과 같은 명령어를 실행한 후
CREATE DATABASE 명령어를 통해 사용자가 생성하길 원하는 데이터베이스를 생성하면 된다.

 

 

 

6. postgresql 서버 실행

- postgres 계정으로 로그인 하여 pg_ctl start 명령어를 실행한다.

 

 

 

 - postgresql 데이터베이스가 정상적으로 기동되었는지 확인한다.

 

 

 

7. 사용자가 만들길 원하는 데이터베이스 생성
- 데이터베이스를 생성하기 위해서는 psql 도구를 실행하고 psql 내에서

CREATE DATABASE 구문을 이용해 데이터베이스를 생성할 수 있다.

 

 

 

 

조금이나마 도움이 되셨다면 밑에 공감 한 번 클릭해주시면 감사하겠습니다.



반응형

댓글