【问题标题】:SSH tunneling with JDBC on Mac OS X - ProblemsMac OS X 上使用 JDBC 的 SSH 隧道 - 问题
【发布时间】:2011-08-24 02:43:19
【问题描述】:

我目前正在开发一个使用 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 连接之前,该应用程序运行良好。我会非常感谢任何帮助,我用谷歌搜索并测试了我发现的每一个建议,但没有任何效果。

【问题讨论】:

  • 试试ssh -fN -L 3306:databaseserver:3306 username@sshserver.com
  • 出色的@trashgod!我错过了 -fN 命令

标签: java mysql jdbc ssh


【解决方案1】:

使用隧道要记住两个问题:

  1. 请记住,当您使用隧道时,您的 JDBC 客户端应连接到 localhost 端口 3305(或 3306,无论您实际使用什么)。它不应继续尝试直接连接到远程主机。

  2. SSH 将隧道连接到远程端并尝试从那里连接到“数据库服务器”端口 3306。如果远程主机上的 ssh 无法解析您提供的主机名,它将无法建立连接。由于您正在通过隧道连接到数据库服务器,因此您可以尝试连接到“localhost”或“127.0.0.1”。

【讨论】:

  • 非常感谢!这解决了我的问题。错过这个让我有点尴尬。现在唯一奇怪的是,当我使用上面提到的trashgod的终端命令时,我每隔一段时间就会从终端得到这个输出:“从远程主机sshhost.com读取:对等方重置连接”。即使我什么都不做也会发生这种情况。
猜你喜欢
  • 2013-04-27
  • 2023-01-20
  • 2016-10-07
  • 2017-12-07
  • 2016-11-10
  • 2012-08-15
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多