数据库不能直接3306访问 通过ssh连接 ,转发到本地端口,代码如下

import java.util.Timer;
import com.jcraft.jsch.JSch;//需要一个jar包
	public static void go() {
		try {
			JSch jsch = new JSch();
			com.jcraft.jsch.Session session = jsch.getSession("username",
					"ip", 22);
			session.setPassword("");
			session.setConfig("StrictHostKeyChecking", "no");
			session.connect();
			System.out.println(session.getServerVersion());// 这里打印SSH服务器版本信息
			int assinged_port = session.setPortForwardingL("127.0.0.1", 6666,
					"127.0.0.1", 3306);// 端口映射 转发
			System.out.println("localhost:" + assinged_port);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

连接数据库的时候对应刚才设置的端口

String URL = "jdbc:mysql://127.0.0.1:6666/nrtest?characterEncoding=utf-8&serverTimezone=UTC";
		String USER = "username";
		String PASSWORD = "password";
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐