代码如下
package test;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import org.junit.Test;
import java.sql.*;
public class MysqlSshUtils {
private static String detionnation_host="目标主机";
private static int detionnation_port=目标端口;
private static String detionnation_name="ssh账号名";
private static String detionnation_pwd="ssh账号密码";
private static String mysql_user="数据库用户名";
private static String mysql_pwd="数据库密码";
private static int mysql_port=数据库端口;
private static String mysql_database="数据库名称";
private static String mysql_host="数据库ip";
private static int forward_mysql_port=转发端口;
@Test
public void sd(){
Session session = null;
try {
JSch jsch = new JSch();
session = jsch.getSession(detionnation_name, detionnation_host, detionnation_port);
session.setPassword(detionnation_pwd);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
int bindPort = session.setPortForwardingL("localhost", forward_mysql_port, mysql_host, mysql_port);
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:" + bindPort + "/" + mysql_database + "?useSSL=false", mysql_user, mysql_pwd);
if (connection.isValid(3)) {
System.out.println("************数据库连接成功***********");
} else {
System.out.println("************数据库连接失败***********");
}
} catch (SQLException e) {
e.printStackTrace();
} catch (JSchException e) {
e.printStackTrace();
} finally {
if (session != null) {
session.disconnect();
}
}
}
}