java - 在 Mac OS X 上使用 JDBC 建立 SSH 隧道 - 问题

标签 java mysql jdbc ssh

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

最佳答案

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

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

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

关于java - 在 Mac OS X 上使用 JDBC 建立 SSH 隧道 - 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5978312/

相关文章:

java - 展平具有自引用的列表列表

php - 根据用户提供的日期范围在 MySQL 数据库中搜索

mysql - 如何重新启动 mysql 以及 my.cnf 文件在哪里

java - 无法连接到 Mariadb Xampp 数据库

从 jar 中删除文件的 ant 任务

java - Android 搜索 ListView 使用 EditText 从 JSON 复制项目

java - OpenShift 上的 Web 套接字断开连接(使用 WildFly 8.2.1)

PHP MYSQL 结果不完整

java - JTable 缺少第一行

java - 将新的 Java Resultset 对象分配给现有的结果集对象,然后关闭原始的 ResultSet 对象会导致新创建的结果集对象被关闭吗?