당연히 socket 을 통한 접속 기능을 제공하고 있다.
처음 설치를 하면, 보안을 위해서 socket 외부 접속이 막혀있다.
이것을 열어주기 위해서는 postgresql.conf 파일을 수정해야 한다.
편집기를 통해서 postgresql.conf 파일을 열어보면,
listen_addresses 항목이 있는데 이것을 수정하면 된다.
listen_addresses 앞에 주석표시를 삭제한다.
(당연한 것이겠지만, 혹시나 하고)
listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) |
기본값이 localhost 로 되어 있다.
localhost 와 127.0.0.1 은 같은 의미다.
뭐, 예를 들어, 실제 PostgreSQL 소스 코드에
listen("localhost");
이런식으로 들어간다는 말이다.
아래 명령어를 통해서,
실제로 네트워크가 어떻게 되고 있는지 확인할 수 있다.
% netstat -nap | grep 5432
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 30702/postgres |
이 말은 PostgreSQL 이 네트워크를 listen 하고 있는데,
127.0.0.1 으로 listen 하고 있겠다는 의미다.
로컬 접속만 허용하겠다는 의미다.
어떤 서버가 psql 을 통해서 PostgreSQL 에 접속을 하려고 할때,
"psql -h localhost" 이런식으로 접속 해야 된다는 것이다.
혹은 "psql -h 127.0.0.1"
결국, 다른 컴퓨터가 아닌, 자기 자신의 접속만 허용한다는걸 의미한다.
만약 다른 컴퓨터에서 접속할 수 있게 하려면 어떻게 해야 할까?
listen_addresses = '자신의 IP 주소'
이런식으로 하면 된다.
만약 자신의 IP 주소가 10.0.2.12 일 경우,
listen_addresses = '10.0.2.12'
이런식으로 하면 된다.
아래 명령어를 통해서,
실제로 네트워크가 어떻게 되고 있는지 확인할 수 있다.
tcp 0 0 10.0.2.12:5432 0.0.0.0:* LISTEN 30702/postgres |
어떤 서버가 psql 을 통해서 PostgreSQL 에 접속을 하려고 할때,
"psql -h 10.0.2.12" 이런식으로 접속 하면 된다.
만약 자신의 IP 주소가 2개일 경우,
listen_addresses = '10.0.2.12,10.0.2.14'
이런식으로 콤마(,)를 사용해서 추가하면 된다.
실제로 네트워크가 어떻게 되고 있는지 확인할 수 있다.
tcp 0 0 10.0.2.12:5432 0.0.0.0:* LISTEN 30702/postgres tcp 0 0 10.0.2.14:5432 0.0.0.0:* LISTEN 30702/postgres |
어떤 서버가 psql 을 통해서 PostgreSQL 에 접속을 하려고 할때,
"psql -h 10.0.2.12" 혹은
"psql -h 10.0.2.14" 이런식으로 접속 하면 된다.
IP 주소를 신경쓰고 싶지 않다면,
listen_addresses = '*' 혹은
listen_addresses = '0.0.0.0' 이런식으로 하면 된다.
IP 주소 상관없이 listen 을 하겠다는 의미다.
아래 명령어를 통해서,
실제로 네트워크가 어떻게 되고 있는지 확인할 수 있다.
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 30702/postgres |
적용 후, PostgreSQL restart 를 반드시 해야 한다.
% pg_ctl restart
※ 만약, PostgreSQL 을 Active-Standby 형식으로 구성할거라면,
반드시 listen_addresses = '*' 으로 설정해야 한다.
왜냐하면 Active 와 Standby 의 IP 주소가 서로 다르기 때문이다.
물론 각각 별도로 postgresql.conf 를 수정하면 되지만,
일반적으로 처음 동기화를 수행할 때, postgresql.conf 도 동기화 되기 때문이다.
출처
http://justckh.blogspot.com/2013/10/postgresql-ip.html
작성자가 댓글을 삭제했습니다.
답글삭제