postgresql은 일단 9.3.5 for windows x64 버전을 사용 했다.

 

뭔가 "서버"라는 단어가 들어가는 기능은 모두 리눅스에서 돌려야 할 것 같은 선입관이 있기는 한데, 실무에서 많이 접하는 서버는 모조리 윈도우이고 개발자체도 윈도우에서 해본 경험이 많다보니 그냥 윈도우 버전이 이것저것 만져보기 쉬울 것 같아 구지 리눅스 버전을 타겟으로 삼지는 않았다.

 

어찌되었든, postgresql은 64비트 윈도우 버전의 9.3.5를 사용하기로 한다.

 

설치는 postgresql홈페이지에 들어가서 해당 버전의 windows intaller를 다운 받아서 실행시키고 next, next, next만 누르면 된다. 알집이나 알약 설치하는 것과 별반 다를것이 없다.

(postgresql 홈페이지 : http://www.postgresql.org/)

 

 

 

 

중간중간에 postgresql이 사용할 포트 번호를 입력하거나, 전체 DB에 대한 root 계정 ( 기본은 postgres)및 비밀번호를 입력하라는 말이 나오는데, 일단 그냥 next만 눌러도 설치는 완료된다. 설치는 매우 직관 적이라서 영어만 읽을 줄 알면, 혹은 몰라도 눈치가 빠른 사람이라면 이정도는 그냥 수정 할 수 있다.

 

그런데 중간에 보면 stackBuilder를 설치하겠냐고 물어보는 란이 나오는데, 이거는 아직 어디에다가 쓰는 물건인지 몰라 체크박스를 해제하고 넘어갔다. 나중에 설치가 가능하다고 하니, 넘어가도 별 문제는 없을 듯 싶다.

 

설치가 정상적으로 완료 된 경우는 pgAdmin III라는 일종의 DB 매니지먼트 프로그램이 같이 설치 되는데, MS SQL의 management studio와 같은 맥락이라 생각해도 좋다. 이 프로그램을 이용해서 DB관리자는 여러 오브젝트들을 생성하거나 제거 할 수 있다.

 

이 외에 설치된 폴더의 bin이라는 폴더를 보면 윈도우즈 cmd 창에서 직접 타이핑해가며 DB를 관리 할 수 있게 해주는, 여러가지 실행파일들이 존재해서 GUI환경보다 텍스트를 이용한 인터페이스를 선호하는 사람들은 이 실행파일들을 이용 할 수도 있다.

 

그럼 이제 이 DB에 접속해 보자.

 

접속에 필요한 것은 아까 입력했던 DB관리자 계정 (next만 눌렀다면 "postgres"), 계정의 password, 접속하고자 하는 주소, 그리고 아까 정했던 DB사용 포트다.

 

pgAdmin III를 실행시켜서 아래와 같이 정보들을 다 입력해주자.

 

 

그리고 연결해보면 아래와 같이 현재 연결한 physical 서버 하위에 어떤 데이터 베이스들이 있는지 쭈욱 나열된다.

 

 

그런데, 이과정을 다른 리모트 서버에서 해보면??? 아래와 같이 접속이 안되는 깝깝한 경험을 할 수 있는데 그것은 현재 이 서버에 대한 접근을 postgresql이 막고 있기 때문이다. 이걸 열기 위해서는 다음 두가지 파일을 수정해야 한다.

 

 

 

 

postgresql.conf , pg_hba.conf

 

postgresql.conf를 열어보면 잡다한 설정값들이 있기는 한데, 그런 것들은 나중에 차근차근 알아보도록 하고 일단 리모트 서버에서 postgresql에 접속하기 위해서는 listen_addresses, port, max_connections를 아래와 같이 수정한다.

 

 

뭐 이름만 봐도 직관적인 설정값이지만, listen_addresses는 이 sql서버가 어떤 네트워크 도메인으로 TCP 포트를 열건지에 대한 값이다. 만약 한 컴퓨터가 192.168.100. 대역과 192.168.99 대역에 모두 포함되어 있다면, 이 값을 '*'로 했을 때 두가지 IP의 5433포트에 TCP서버를 열고 listen상태로 들어가 클라이언트의 접속을 기다리게 된다.

 

port는 뭐.. 그냥 포트 번호다. 그리고 max_connections는 한번에 접속할 수 잇는 클라이언트를 설정하는 값으로 기본값 100으로 설정되어 있다.

 

그리고 두번째로 pg_hba.conf를 수정해야 된다. 여기는 앞서 설정한 TCP포트로 접속이 이뤄지고나서 어떤 IP로부터 어떤 유저가 어떤 데이터 베이스에 대한 접근권한을 가질지 설정한다. 기본으로 설정되어 있는 것이 localhost에서 시도되는 접속에 대해서만 권한을 부여하기 때문에 리모트 서버에서 시도하는 접속을 위에서처럼 막아 버린 것이다.

 

그래서 이번엔 이 conf파일을 수정하여 모든 호스트로부터 오는 접속을 아래와 같이 허용한다. (각 컬럼에 대한 상세 설명은 생략한다. 왜냐하면 이 텍스트 파일에 모두 있기 때문..)

 

 

간단히 설명하자면, IPv4를 기준으로 했을 모든 ADDRESS로부터의 접속을 허용한다는 의미인데.. 아직나도 잘 모르겠지만 이렇게 해주면 리모트 서버로부터의 접속을 허용하게된다.

 

모든 수정을 마쳤으면, 이제 파일들을 모두 저장하고 postgresql서비스를 한번 재시작해준다. pgAdmin III에서 재시작해도 되고 서비스에서 그냥 서비스를 종료했다가 다시 시작해도 좋다..그럼 이제 리모트 서버에서도 해당 postgresql에 대한 접속이 가능해진다...

 

다음 포스트에서는 실제로 디비를 만들고 지우고 테이블을 만들고 지우고 북치고 장구치며 이 디비를 가지고 놀아보자..

Posted by 굿쟌
,