흠.. -_-; 왜 또 이짓을...
일단 yum install postgresql postgresql-server 를 실행하여 postgresql 클라이언트 및 서버를 설치한다.
처음엔 초기화가 안되어 있으므로 다음 명령어로 데이터베이스 초기화
service postgresql initdb
이제 외부에서 서버에 연결할 수 있도록 설정을 잡아주자.
/var/lib/pgsql/data 디렉토리로 이동한다. (왜 저기에 설치되는 거냐.. ㅠㅠ 귀찮게..)
pg_hba.conf 파일을 열어 가장 하단에 다음과 같이 모든 연결에 대해 md5 인증을 하도록 추가한 후 저장한다.
host all all 0.0.0.0/0 md
접속 가능한 IP 대역을 제어하고 싶으면 0.0.0.0/0 이라고 된 부분을 적당히 고쳐서 사용..
이제 postgresql 서버가 외부 주소에 대해 listening 하도록 같은 폴더 내의 postgresql.conf 파일에 다음과 같이 추가한 후 저장한다.
listen_addresses = '*'
이제 service postgresql start 명령으로 서버를 시작한다.
문제 발생시 /var/lib/pgsql/data/pg_log 아래에 있는 파일 내용을 보고 오류를 수정하자. (왜 저기 설치되는거냐.. ㅠㅠ 귀찮게..x2)
재부팅시 postgresql 서버가 자동으로 구동되게 하려면 chkconfig postgresql on 명령을 사용하여 자동으로 시작될 수 있게 해주자
이제 사용자가 쓸수 있는 계정과 데이터베이스를 만들어 보자
su - postgres 명령을 사용해서 postgres 계정으로 갈아탄 후 psql 을 실행한다.
다음 명령으로 사용자 생성
create user 아이디 with password '비밀번호';
create database 데이터베이스 with encoding='utf-8' onwer 아이디;
Ctrl-D를 눌러 psql을 종료한다. 이것으로 기본적인 준비는 완료.
외부에서 pgadmin 등으로 접속을 시도해보면 접속이 안된다. centos에는 방화벽이.. ㅡㅡ;
/etc/sysconfig/iptables 파일에 다음과 같이 추가한다.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
다음 명령으로 iptables를 재구동 하자
service iptables restart
이제 외부에서 접속 될것으로 예상. 안되면 차근 차근 다시 원인 분석!