2011-05-12 2 views
1

현재 Mac OS 10.6.7을 실행하는 컴퓨터에서 JDBC inorder를 사용하여 MySQL에 연결하는 Java 응용 프로그램을 개발 중입니다. SSH를 사용하기로 결정한 서버가 갑자기 연결되었습니다. MySQLWorkbench를 사용하여 데이터베이스에 연결할 수 있었으므로 연결에 문제가 없습니다.Mac OS X에서 JDBC를 사용하는 SSH 터널링 - 문제점

내 다음 시도는 터미널을 시작하고 ssh [email protected] -L 3305 : databaseserver : 3306을 입력 한 다음 Eclipse를 시작하고 내 응용 프로그램을 실행하는 것입니다. 터미널에서 암호를 묻는 메시지를 표시했지만 JDBC를 연결할 수 없습니다. 나는 다음의 설정으로 SSH 터널 관리자를 시도했다 : http://imageshack.us/photo/my-images/146/sshb.jpg/ 그리고 그것도 비밀 번호를 묻는 다음 녹색 불빛을 준다. 여전히 성공하지 못했습니다. SSH없이 연결되었을 때 응용 프로그램은 정상적으로 작동했습니다. 어떤 도움을 주셔서 감사 드리며, 제가 찾은 모든 제안을 봤습니다.하지만 아무 것도 효과가 없었습니다.

+1

시도'ssh를 -fn -L 3306 : databaseserver : 3306 사용자 이름 @의 sshserver.com' – trashgod

+0

화려한 @trashgod! 나는 -fN 명령을 놓쳤다. –

답변

3

두 가지 문제가 마음 사용하여 터널 유지 :

  1. 당신이 터널을 사용할 때, 당신의 JDBC 클라이언트 (당신이 실제로 사용하든, 또는 3306) 3305 포트 localhost에 연결해야 기억

    . 원격 호스트에 직접 연결하려고 시도해서는 안됩니다.

  2. SSH는 원격 터널로 연결을 터널링하고 거기에서 "databaseserver"포트 3306에 연결을 시도합니다. 원격 호스트의 ssh가 지정한 호스트 이름을 확인할 수없는 경우 연결을 만들 수 없습니다. 데이터베이스 서버로 터널링 중이므로 대신 "localhost"또는 "127.0.0.1"에 연결할 수 있습니다.

+0

대단히 고마워! 그게 내 문제를 해결해 줬어. 그것을 놓쳐 버리는 조금 당황 스럽네요. 지금 이상한 유일한 점은 위에서 언급 한 trashgod라는 터미널 명령을 사용할 때마다 터미널에서이 출력을 얻을 수 있다는 것입니다. "원격 호스트 sshhost.com에서 읽기 : 피어가 연결 재설정". 이 일은 내가 아무 것도하지 않더라도 일어난다. –