如何从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连接。
PortForwardingL.java
jdbc:mysql://localhost:1234/[database]