navicat使用SSH进行连接时如何使用Java代码进行连接
https://my.oschina.net/Thinkeryjgfn/blog/177283
使用JSch进行SSH连接
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
/**
* 获取数据库连接
*
* @return
*/
private static Connection getConnection() {
JSch jSch = new JSch();
try {
/**
* SSH_USER:服务器用户名
* SSH_HOST:服务器地址
* SSH_PORT:服务器端口
* SSH_PASSWORD:服务器登录密码
*/
Session session = jSch.getSession(SSH_USER, SSH_HOST, SSH_PORT);
session.setPassword(SSH_PASSWORD);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
log.info("服务器版本信息: {}", session.getServerVersion());
/**
* 正向代理
* LOCALHOST_HOST(可缺省参数,默认:127.0.0.1):绑定的地址
* LOCALHOST_PORT:本地未被占用的端口
* MYSQL_HOST:数据库地址
* MYSQL_PORT: 数据库端口
*/
session.setPortForwardingL(LOCALHOST_HOST ,LOCALHOST_PORT, MYSQL_HOST, MYSQL_PORT);
} catch (JSchException e) {
log.error("JSch get session failure", e);
}
Connection conn = null;
try {
/**
* URL: jdbc:mysql://127.0.0.1:3300/test **这里的地址和 LOCALHOST_HOST 一致
*/
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
log.error("get connection failure", e);
}
return conn;
}