我目前正在开发一个使用JDBC的Java应用程序,以便在运行Mac OS 10.6.7的计算机上连接到MySQL。我连接的服务器突然决定使用SSH。我已经设法使用MySQLWorkbench连接到数据库,因此连接没有任何问题。
我的下一次尝试是启动终端并键入ssh username@sshserver.com -L 3305:databaseserver:3306然后启动Eclipse并运行我的应用程序。终端提示我输入密码,但JDBC无法连接。我尝试使用以下设置的SSH隧道管理器:http://imageshack.us/photo/my-images/146/sshb.jpg/它还会提示我输入密码然后给出绿灯。仍然没有成功。在我没有SSH连接之前,应用程序工作正常。我会非常感激任何帮助,我用Google搜索并测试了我找到的所有建议,但没有任何效果。
答案 0 :(得分:3)
使用隧道时要记住两个问题:
请记住,当您使用隧道时,您的JDBC客户端应该连接到localhost端口3305(或3306,无论您实际使用的是什么)。它不应该继续尝试直接连接到远程主机。
SSH将隧道连接到远程端并尝试从那里连接到“databaseserver”端口3306。如果远程主机上的ssh无法解析您提供的主机名,则无法建立连接。由于您正在隧道连接到数据库服务器,因此可以尝试连接到“localhost”或“127.0.0.1”。