通过SSH数据库将Java连接到MySQL TCP / IP

时间:2016-04-21 12:19:10

标签: java mysql jdbc ssh

我正在尝试连接MySQL服务器“通过SSH”,但我一直收到错误。

这是代码。

int lport = 
String host = " "
String rhost = " ";
int rport = 
String user = " ";

String dbuserName = " ";
String dbpassword = " ";
String dburl = "  ";

String driverName = "com.mysql.jdbc.Driver";
String driverName2 = "org.gjt.mm.mysql.Driver";

session = null;
con = null;
try { 
    final java.util.Properties config = new java.util.Properties();
    config.put("StrictHostKeyChecking", "no");
    final JSch jsch = new JSch();
    session = jsch.getSession(user, host, 22);
    jsch.addIdentity("C:\\Users\\WAlnadi\\workspace\\AKCAPIAutomation\\lib\\FARM-8-9df40547.us-east-1.pem");
    session.setConfig(config);
    session.connect();
    session.setPortForwardingL(rport, host, rport);
    System.out.println("Connected through SSH");
    final int assinged_port = session.setPortForwardingL(lport, rhost, rport);
    System.out.println("localhost:" + assinged_port + " -> " + rhost + ":" + rport);
    System.out.println("Port Forwarded");

    //mysql database connectivity
    Class.forName("com.mysql.jdbc.Driver").newInstance();

    //String url = "jdbc:mysql://localhost:" + rport + "/" + db;
    con = DriverManager.getConnection(dburl, dbuserName, dbpassword);

    System.out.println("Mysql Database connection established");
    System.out.println("DONE");        

    return true;
    } catch (final Exception e) {
         e.printStackTrace();return false;
    } finally {
        if (con != null && !con.isClosed()) {
            System.out.println("Closing Database Connection");
            con.close();
        }
        if (session != null && session.isConnected()) {
            System.out.println("Closing SSH Connection");
            session.disconnect();
        }
    }
}

和错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

成功发送到服务器的最后一个数据包是0毫秒前。驱动程序未收到来自服务器的任何数据包。

0 个答案:

没有答案