2016년 8월 5일

CentOS 6.5 환경에 PostgreSQL 9.4 구축


- 소프트웨어 구축예산에 제약이 있는 경우 대부분 오픈소스를 고려하게 된다. 가장 많은 비용을 차지하는 데이터베이스 역시 예외가 아니다.

1. PostgreSQL 


Red Hat 계열 리눅스 배포본(Red Hat Enterprise Linux, CentOS, Fedora .. )들은 디폴트로 PostgreSQL 을 지원하고 있다. 다만 이들이 제공하는 버전은 특정 버전으로 한정된다.
따라서 권장 버전과 다를 수가 있는데, 이러한 문제는 해결하기 위한 다양한 플랫폼 환경의 설치 파일을  지원하고 있다.

설치 대상 : CentOS 6.5

설치하려는  서버(CentOS 6.5)에 설치가능한 버전 확인 결과 8.4.20 버전을 지원하고 있다.

$ yum list postgresql-server
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile

 * base: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com

Available Packages

postgresql-server.x86_64                   8.4.20-6.el6                    base

CentOS 6.5 에서 제공하는 8.4 버전이 아닌 PostgreSQL 가 제공하는 rpm 파일 설치파일을 사용해서 9.4 버전을 설치한다. (9.5 버전 설치도 가능하였지만 9.4가 필요) (http://yum.postgresql.org/ 사이트 참고)

설치할 서버 플랫폼에 맞는 레파지토리를 추가한다. (http://yum.postgresql.org/repopackages.php#pg94 참고)

rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-2.noarch.rpm




2. 설치

yum install postgresql94-server postgresql94-contrib


3. 데이터베이스 구성

(작업은 root 계정)

기본 데이터베이스 생성
service postgresql-9.4 initdb

서비스 시작
service postgresql-9.4 start

프로세스 확인
ps -ef | grep post

4. 계정 생성

설치과정에서 자동으로 생성되는 postgres 계정으로 로그인한다.
사용자 계정과 데이터베이스를 생성한다. (예 honeycomb 계정을 만들고 honeycomb 사용자 DB 생성한다고 가정)

psql 명령을 실행한다. 아래와 같이 명령문을 입력 계정과 사용자 DB를 생성한다.


create user honeycomb with password '비번' ;
create database honeycomb with encoding='utf-8' owner honeycomb ;

다음 명령으로 확인한다.

select * from pg_database;

다음 명령을 입력하여 psql을 종료한다. 

\q

(root 계정으로 ) 아래 명령을 입력하여 서비스를 재기동한다.

service postgresql-9.4 restart

5. 외부에서 접속가능하도록 설정변경


만일 외부에서 접속한다면 /var/lib/pgsql/9.4/data/pg_hba.conf 파일에 

host all all 0.0.0.0/0 md
를 추가한다. 이제 postgresql 서버가 외부 주소에 대해 listening 하도록 같은 폴더 내의 /var/lib/pgsql/9.4/data/pg_hba.conf/postgresql.conf 파일에 다음과 같이 추가한 후 저장한다.

listen_addresses = '*'

추가한다. 

다시 root 계정으로 돌아가 다음 명령으로 기본 데이터베이스를 생성한다.


service postgresql-9.4 initdb

만일 외부에서 접속한다면 
/var/lib/pgsql/9.4/data/pg_hba.conf/postgresql.conf 파일에 아래 내용을 

listen_addresses = '*' 

/var/lib/pgsql/9.4/data/pg_hba.conf 파일에 다음 내용을 추가한다.

host  all  all 0.0.0.0/0 md5

를 추가한다. 이제 postgresql 서버가 외부 주소에 대해 listening 하도록 같은 폴더 내의 /var/lib/pgsql/9.4/data/pg_hba.conf/postgresql.conf 파일에 다음과 같이 추가한 후 저장한다.

listen_addresses = '*'

추가한다.

데이터베이스 서비스를 다시 시작한다.(root 계정으로 )

service postgresql-9.4 restart

6. 개발 툴에서 접속

개인적으로 sqldeveloper 도구를 사용하기 때문에 thirdpary jdbc 드라이버를 등록하여 사용하였다.
Jdbc 드라이버는 아래 사이트에서 다운로드 할 수 있다.

https://jdbc.postgresql.org/download.html

SqlDeveloper 에서 PostgreSQL 접속하려면 먼저 

Tools → PreferencesDatabase → Third Party JDBC Drivers

메뉴에서 드라이버를 추가한다.


드라이버가 추가되었으면 새로운 데이터베이스 접속을 생성시 PostgreSQL 연결을 위한 탭이 보여진다.



댓글 없음:

댓글 쓰기