2012-01-30 7 views
1

나는 이미 JAVA SWING Application을 개발했습니다. 여러 컴퓨터에이 응용 프로그램을 설치하려면 모두 에 액세스 할 수 있어야합니다. MYSQL 데이터베이스는 어디에 두어야합니까? 이 모든 컴퓨터는 인터넷을 통해 에 동일한 데이터베이스에 액세스 할 수 있어야합니다.java를 사용하여 원격 mysql 데이터베이스에 액세스하는 방법

답변

3

보안 (인증 권한 부여, 암호화) 및 성능상의 이유로 인터넷을 통해 데이터베이스에 직접 액세스하는 것은 일반적이지 않습니다. 대부분의 경우 데이터베이스 작업을 수행하고 비즈니스, 도메인 및 보안 규칙을 적용 할 수있는 웹 기반 서버 응용 프로그램을 만듭니다. 클라이언트 응용 프로그램은 REST 호출, AJAX 호출 또는 독점적 인 기술을 사용하여 인터넷을 통해 호출하고 서버에서 결과를 다시 가져옵니다.

귀하의 경우 클라이언트 소프트웨어가 Java이므로 Java Servlets을 조사하고 Tomcat과 같은 경량의 것을 서버로 실행할 수 있습니다.

클라이언트 - 서버 관계에 대한 설명은 this pagethis page을 참조하십시오.

+0

감사. 나는 웹 사이트를 만드는 것이 이러한 목적에 부합한다는 것을 알고 있지만 이미 SWING 응용 프로그램을 만들었습니다. – wishman

+0

나를 오해했습니다. Swing 애플리케이션이 데이터를 얻기 위해 호출 할 서버 측 애플리케이션에 대해 이야기하고 있습니다. 방법과 이유를 설명하기 위해 마지막에 링크를 포함했습니다. –

1

가능성은 무한합니다. 다른 사람들이 액세스 할 수있는 모든 컴퓨터에 배치 할 수 있습니다. 네트워크를 통해 데이터베이스에 액세스 할 수있는 한 실제로 위치는 문제가되지 않습니다. 그러나 클라이언트 Swing을 사용하는 컴퓨터가 모두 LAN에 연결되어 있으면 최상의 성능으로 컴퓨터에 DB를 저장하는 것보다 좋습니다. 팁으로 IP 및 포트 동적 또는 텍스트 또는 항목을 사용하므로 IP를 변경할 때마다 다시 컴파일하지 마십시오. 치어!

+0

그게 더 비슷해 :) 이제 내 데이터베이스는 LAN에 연결된 하나의 컴퓨터에 저장됩니다. 그러나이 LAN에 연결되어 있지 않은 컴퓨터가 더 있습니다. 다른 컴퓨터는 다른 곳에 있기 때문입니다. 이 컴퓨터가 인터넷을 통해 데이터베이스에 연결하려는 경우 IP 주소를 설정하는 방법은 무엇입니까? 감사합니다. – wishman

+0

정말로이 경로를 가고 싶다면 원격 사용자 VPN을 LAN에 연결할 수 있습니다 (http://en.wikipedia.org/wiki/Virtual_private_network 참조). 하지만 여전히 응용 프로그램과 데이터베이스간에 서버 구성 요소를 사용하는 것이 좋습니다. –

+1

dj_segfault .... VPN 브로커 아키텍처와 동의합니다 ...하지만 문제에 대한 가장 쉬운 솔루션은 간단합니다, 그 데이터베이스를 offeres 호스팅을 선택하고, 그 서버에 넣어. 나는 당신이 복잡한 거래를 사용하지 않는다고 생각하여 허지 문제는 아닐 것이라고 생각할 것이다. 그러나 나는 강하게 어필 할 때마다 각기 다른 사용자에게 각기 다른 사용자를주고, 자동 커밋을 해제하고 트랜잭션을 사용하도록 제안 할 것이다. – Darwly

2
  1. 인터넷을 통해 액세스 할 수있는 호스트에 데이터베이스를 저장하십시오.
  2. 각 Applicaton 호스트의 외부 IP 주소 각각에 대해 mysql에서 사용자를 만듭니다.

    GRANT ALL PRIVILEGES TO database.* to `user1`@`APPLICATION_HOST_IP` identified by 'PASSWORD'; 
    

지금 user1는 IP APPLICATION_HOST_IP에서 액세스 할 수 있습니다.

+0

고정 IP를 얻기 위해 "Hamachi"라는 VPN 클라이언트를 사용했습니다. – wishman

관련 문제