很多时候,我们可能会出现这种情况:我们的程序无法直接连接数据库,而要通过某一台linux等中间机器来实现一个中转,比如我们的机器是A,数据库是C,A和C不能直接连接,但A可以连接B,B可以连接C,这时我就可以通过ssh通道来进行数据库连接。Jsch是纯Java实现的SSH开源框架

可以用来执行shell命令,实现sftp上传,同时我们也可以使用它来进行数据库连接通道。

1、添加依赖

com.jcraft

jsch

0.1.54

org.nutz

nutz

1.r.65

com.alibaba

druid

1.1.8

mysql

mysql-connector-java

2、创建数据访问对象public Dao getDao(String mysqlHost, String schema, String mysqlUser, String mysqlPwd, String linuxHost, int linuxPort, String linuxUser, String linuxPwd, int localPort, int remotePort) throws Exception {

java.util.Properties config = new java.util.Properties();

config.put("StrictHostKeyChecking", "no");

JSch jsch = new JSch();

Session session = jsch.getSession(linuxUser, linuxHost, linuxPort);

session.setPassword(linuxPwd);

session.setConfig(config);

session.connect();

session.setPortForwardingL(localPort, mysqlHost, remotePort);

DruidDataSource ds = new DruidDataSource();

ds.setDriverClassName("com.mysql.jdbc.Driver");

ds.setUsername(mysqlUser);

ds.setPassword(mysqlPwd);

//此处其实是在本地开放一个端口,所以地址不用修改,同时本地需要保留该端口,不让其他程序占用

ds.setUrl("jdbc:mysql://localhost:" + localPort + "/" + schema + "");

Dao dao = new NutDao(ds);

return dao;

}

3、数据操作相关,可直接参考nutz官网,如果不想使用连接池或nutzDao,自行创建原生jdbc连接或引用其他框架即可。

jdbc mysql ssh通道_Jdbc使用ssh通道连接Mysql相关推荐

  1. mysql connector安装教程_通过安装MySQL Connector/Net实现VS2017 C#编程连接MySQL数据库-网络教程与技术 -亦是美网络...

    对编程有一定了解的小伙伴都知道,一般情况下使用微软的visual studio进行编程开发都会搭配自家的SQL server.Access数据库,而开发web程序一般情况下PHP搭配MySQL使用,但 ...

  2. navicat远程连接mysql很慢_解决Navicat远程连接mysql很慢的方法

    ubuntu 下 /etc/mysql/mysql.conf.d [mysqld] skip-name-resolve  增加该字段即可 如果增加该字段,这无法使用本地ip进行登入, 登陆到MySql ...

  3. matlab 连接mysql数据库_【转】matlab 连接 mysql 数据库

    首先要安装mysql驱动程序包,详细步骤如下: Step 1: 将mysql-connector-java-5.1.7-bin.jar文件拷贝到......\MATLAB\R2009a\java\ja ...

  4. php连接不到mysql怎么解决,怎么解决php无法连接mysql的问题

    解决php无法连接mysql的问题的方法:1.打开php.ini配置文件:2.修改配置[pdo_mysql.default_socket=/tmp/mysql.sock]:3.重启nginx或apac ...

  5. mysql打开网络访问权限_远程连接mysql 授权方法详解

    今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器 ...

  6. c 连接mysql怎么增删改_C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

  7. php 跳板机连接mysql,使用python如何通过跳板机连接MySQL数据库

    生产环境中,为了安全起见,大多数的数据库是无法在本地直接访问的,需要先连接跳板机,然后通过跳板机访问.创业天下测试数据库也是采用这种方法连接数据的,那么我们应该怎么通过Python去连接数据库呢,代码 ...

  8. e语言mysql中文_大佬们E语言连接MYSQL输出中文乱码怎么破

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .版本 2 .支持库 mysql .支持库 iext .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 数据库连接句柄 = 连接MySql (& ...

  9. linux c mysql 增删改查_Linux C语言连接MySQL 增删改查操作

    Linux下想要测试mysql和memcached的性能,因为是服务器只能通过终端连接,所以考虑用C语言写测试代码.于是研究了把C怎么连接MySQL以及增删改查的代码.安装mysql-client或者 ...

  10. mysql root远程访问权限_解决Navicat连接MySQL数据库报错问题

    今天在用Navicat连接一台虚拟机上的MySQL时报错: Host is not allowed to connect to this MySQL server 虚拟机中的MySQL是通过PHPSt ...

最新文章

  1. js里的document对象大全(DOM操作)
  2. 存储组和数据库的区别?
  3. jq实现文字个数限制_jQuery插件InputLimitor实现文本框输入限制字数统计
  4. jsp内置对象page
  5. Flot使用文档(转)
  6. 检测iOS的APP性能的一些方法
  7. Android中AVD(Android Virtual Device)不能启动的处理方法
  8. UNP学习 高级I/O函数
  9. Flex 4 [HostComponent] class xxx not found (AS code)
  10. 如何给页面加上loding_excel打印区域页面设置
  11. Qt 方式问题_vortex_新浪博客
  12. 2020年中国地质灾害和地震发生数量、受灾人数和经济损失现状,防护和治理至关重要「图」
  13. 网络安装CentOS 7
  14. Spring DI和AOP简介(一)
  15. SSR门户项目爬坑之路(三)
  16. 时间序列学习 经典案例(1)【tsfresh】预测多只股票
  17. turtle绘制五角星
  18. 码出高效JAVA代码
  19. Android自定义底部弹出窗-dialog(2种实现分析+源码)
  20. SPM(SQL Plan baseline)(11g)

热门文章

  1. Java中的数组,列表,集合,映射,元组,记录文字
  2. 如何分析线程转储– IBM VM
  3. 与reCAPTCHA的Spring集成
  4. 具有NetBeans,WebLogic 12c,JPA和MySQL数据源的Arquillian
  5. 将Ehcache添加到Openxava应用程序
  6. 如何理解 inode
  7. Windows 系统下使用 putty 客户端通过 SSH 远程连接 AWS 服务器
  8. java当前4中引用_Java的四种引用
  9. 惠普照片打印软件_被看错的打印机?原来打印机还可以这么玩
  10. java 对线程进行事务控制_Java 多线程事务回滚 ——多线程插入数据库时事务控制...