2011-05-12 138 views
1

我目前正在開發一個java應用程序,它使用JDBC inorder在運行Mac OS 10.6.7的計算機上連接到MySQL。我連接的服務器突然決定使用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 username @ sshserver.com' – trashgod 2011-05-12 13:16:34

+0

輝煌@trashgod!我錯過了-fN命令 – 2012-05-26 10:18:55

回答

3

兩個問題要記住使用隧道:

  1. 請記住,當你使用一個隧道,你的JDBC客戶端應該連接到本地主機端口3305(或3306,無論你實際使用)。它不應該繼續嘗試直接連接到遠程主機。

  2. SSH將隧道連接到遠程端並嘗試從那裏連接到「數據庫服務器」端口3306。如果遠程主機上的ssh無法解析您提供的主機名,它將無法建立連接。由於您正在隧道連接到數據庫服務器,因此您可以嘗試連接到「localhost」或「127.0.0.1」。

+0

非常感謝!這解決了我的問題。有點尷尬,我錯過了這一點。現在唯一奇怪的是,當我使用上面提到的trashgod的終端命令時,我每隔一段時間就會從終端獲取該輸出:「從遠程主機sshhost.com讀取:通過對等方重置連接」。即使我沒有做任何事情,也會發生這種情況。 – 2011-05-12 13:57:16