2013-04-26 2 views
-1

로컬 시스템 postgresql DB에 연결하는 JDBC 프로그램이 있습니다.jdbc 유형 4 드라이버를 사용하여 다른 시스템 db에 연결하는 방법

Class.forName("org.postgresql.Driver"); 
Connection con=DriverManager.getConnection("jdbc:postgresql://localhost:5432/LOCATIONS_INFO","postgres","password"); 
System.out.println("Connection Created"); 

이것은 성공적으로 실행됩니다. 또한 같은 LAN에있는 다른 시스템에있는 postgresql 데이터베이스에 연결하려고합니다. 내가 연결할 localhost를 다른 시스템의 IP로 대체 할 때 예외가 발생합니다.

연결 방법을 알려주세요.

+1

적어도 예외 + 스택 추적 게시 –

답변

1

구성이나 네트워크에 문제가있을 수 있습니다. 먼저 다른 시스템의 PostgreSQL이 모든 네트워크 인터페이스의 포트 5432에서 수신 대기하는지 확인하십시오. 당신은 netstat로 확인할 수 있습니다 (물론 당신은 데이터베이스 서버의 콘솔에서 실행해야합니다) :

[[email protected] ~]# netstat -lnp | grep 5432 
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 8484/postmaster 

(PostgreSQL을 Windows에서 작동하는 경우 내가 제안 TCPView 유틸리티의 사용)

0.0.0.0:5432는 PostgreSQL의가 있음을 보여줍니다 포트 5432에서 모든 네트워크 인터페이스 수신 대기.

이제 PostgreSQL 구성이 IP에서 연결을 허용하는지 확인해야합니다. PostgreSQL은 pg_hba.conf 파일을 사용하여 다양한 주소의 연결을 허용/거부합니다. 내 네트워크 항목의 예를 들면 다음과 같습니다

host all all 169.0.1.0/24 trust 

모든 169.0.1.* 기계 PostgreSQL을 함께 연결할 수 있습니다.

그런 구성으로 연결할 수 있으면 컴퓨터와 데이터베이스 서버에서 방화벽을 확인하십시오.

관련 문제