我目前正在开发一个使用 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 连接之前,该应用程序运行良好。我将非常感谢任何帮助,我用谷歌搜索并测试了我发现的每一个建议,但没有任何效果。
最佳答案
使用隧道要记住的两个问题:
请记住,当您使用隧道时,您的 JDBC 客户端应连接到本地主机端口 3305(或 3306,无论您实际使用什么)。它不应继续尝试直接连接到远程主机。
SSH 将隧道连接到远程端并尝试从那里连接到“数据库服务器”端口 3306。如果远程主机上的 ssh 无法解析您提供的主机名,它将无法建立连接。由于您正在通过隧道连接到数据库服务器,因此您可以尝试连接到“localhost”或“127.0.0.1”。
关于java - 在 Mac OS X 上使用 JDBC 建立 SSH 隧道 - 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5978312/