Mac OS X 上使用 JDBC 的 SSH 隧道 - 问题

发布于 2024-11-06 18:35:47 字数 620 浏览 0 评论 0原文

我目前正在开发一个java应用程序,它使用JDBC来连接到运行Mac OS 10.6.7的计算机上的MySQL。我连接的服务器突然决定使用 SSH。我已成功使用 MySQLWorkbench 连接到数据库,因此连接没有任何问题。

我的下一次尝试是启动终端并输入 ssh [email protected] - L 3305:databaseserver:3306 然后启动 Eclipse 并运行我的应用程序。终端提示我输入密码,但 JDBC 无法连接。我尝试使用以下设置使用 SSH 隧道管理器: http://imageshack.us/ photo/my-images/146/sshb.jpg/ 它还提示我输入密码,然后亮起绿灯。仍然没有成功。当我刚刚在没有 SSH 的情况下连接时,该应用程序运行良好。我将非常感谢任何帮助,我用谷歌搜索并测试了我发现的每一个建议,但没有任何效果。

I am currently developing a java application that uses JDBC inorder to connect to MySQL on a computer running Mac OS 10.6.7. The server that I connect to suddenly decided to use SSH. I've managed to connect to the database using MySQLWorkbench so there is nothing wrong with the connection.

My next attempt was to start the terminal and type ssh [email protected] -L 3305:databaseserver:3306 and then start Eclipse and run my application. The terminal prompted me for my password but JDBC could not connect. I tried SSH Tunnel Manager with the following settings: http://imageshack.us/photo/my-images/146/sshb.jpg/ and it also prompts me for the password and then gives a green light. Still no success. The application worked fine before when i just connected without SSH. I would be very grateful for any help, I googled and tested every suggestion I found but nothing worked.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆依然 2024-11-13 18:35:47

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

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

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

Two issues to keep in mind using tunnels:

  1. Remember that when you use a tunnel, your JDBC client should connect to localhost port 3305 (or 3306, whatever you're actually using). It shouldn't continue trying to connect directly to the remote host.

  2. SSH will tunnel the connection to the remote end and try to connect to "databaseserver" port 3306 from there. If ssh on the remote host can't resolve the hostname that you gave it, it won't be able to make the connection. Since you are tunneling to the database server, you could try connecting to "localhost" or "127.0.0.1" instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文