为什么要使用SSH隧道连接:
一般情况下,JDBC与集群创建的连接方式,是采用直连的方式,即JDBC通过IP、端口、用户名和密码与集群直接连接并登录数据库进行操作,但是某些情况下,某个用户可能不允许通过网路登录数据库,只允许本机操作,这种情况下,就可以使用SSH隧道连接的方式,与集群进行连接了。
什么是SSH隧道连接:
SSH隧道连接,可以先从JDBC所在服务器与集群服务器间建立SSH隧道,然后通过该隧道实现从数据库服务器的本地连接并登录集群,这样就可以实现数据库操作了。
SSH隧道连接方式,并不是JDBC本身的一种特性,只是通过Java编码实现的一种实践场景。
代码示例如下:
// 创建SSH隧道
JSch jsch = new JSch();
Session session = jsch.getSession("gbase", "192.168.1.2", 22);
session.setPassword("gbase");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
//端口映射,详见java doc
int assinged_port = session.setPortForwardingL("192.168.1.1", 5258, "192.168.1.2", 5258);
Class.forName("com.gbase.jdbc.Driver");
conn2 = DriverManager.getConnection("jdbc:gbase://localhost:5258/test", "gbase", "gbase20110531");