当前位置: 首页 > 面试题库 >

使用Java通过SSH连接到远程MySQL数据库

司浩壤
2023-03-14
问题内容

如何从Java应用程序通过SSH连接到远程MySQL数据库?小代码示例对我有所帮助,对此我将不胜感激。


问题答案:

我的理解是,您想访问在远程计算机上运行的mysql服务器,并通过SSH隧道侦听端口3306。

要使用命令行ssh客户端从本地计算机上的端口1234到远程计算机上的端口3306的隧道,您可以从本地计算机上键入以下命令:

ssh -L 1234:localhost:3306 mysql.server.remote

要从Java执行相同的操作,可以使用JSch(SSH2的Java实现)。从其网站:

JSch允许您连接到sshd服务器并使用端口转发,X11转发,文件传输等,并且可以将其功能集成到您自己的Java程序中。JSch已获得BSD样式许可。

例如,看一下PortForwardingL.java。会话连接后,使用诸如jdbc:mysql://localhost:1234/[database]连接URL之类的内容创建与MySQL的JDBC连接。



 类似资料:
  • 我需要通过ssh连接连接到Mysql RDS DB,我尝试过的是打开一个ssh隧道,然后连接到那个DB,但是没有工作。 下面是我的代码: 上述代码崩溃,但有以下例外情况,并在“con=drivermanager.getconnection(dburl,dbuserName,dbpassword);”行中崩溃: 请注意,ssh主机ip与db主机ip不同 多谢了。

  • 问题内容: 我正在尝试在Java项目中通过SSH连接到远程MySQL服务器。如何将SSH连接与JPA集成在一起? 我正在使用Netbeans 6.9.1,JPA,MySQL 5.2。 问题答案: 我假设您想隧道传输到仅侦听localhost(或已防火墙)的远程mysql 那么最简单的方法是 在运行应用程序服务器的帐户之间建立信任关系,以便将JPA服务提供给您的应用程序 创建隧道使用来创建隧道,该隧

  • 代理的代码在这里 生成脚本在这里 我在远程计算机上启动应用程序时使用 主机上打开了两个端口6004和6005,如果jconsole是应用程序本地的,我可以通过jconsole连接到应用程序。 然后创建2个ssh隧道 ssh隧道ssh-l 6004:localhost:6004 foo@server ssh隧道ssh-l 6005:localhost:6005 foo@server 现在的问题是我无

  • 问题内容: 我在由远程MySQL数据库支持的分布式环境中部署Play应用程序。具体来说,应用程序托管在heroku上,数据库位于Amazon RDS上(尽管这实际上适用于任何远程数据库连接)。由于数据库不仅位于本地主机上,为了安全起见,我更希望通过SSL建立远程MySQL连接。 给定要信任的CA证书,只有可以验证主机证书的情况下,如何配置Play应用程序以通过SSL连接到MySQL服务器? 假定这

  • 我已经在本地Windows 7和远程RHEL 7 VM上安装了JProfiler 10.0.1。 由于格式问题,此处提供了与第3点相关的输出: 一些事实: 我希望监视的远程RHEL JVM与用户“nifi”一起运行 由于我是一个“sudoer”,我使用自己的用户名“ojoqcu”通过SSH(通过Putty)连接到远程VM,然后使用“sudo su”、“su nifi”或简单的“sudo su ni