jdbc mysql ssh通道_Jdbc使用ssh通道连接Mysql
很多时候,我们可能会出现这种情况:我们的程序无法直接连接数据库,而要通过某一台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相关推荐
- mysql connector安装教程_通过安装MySQL Connector/Net实现VS2017 C#编程连接MySQL数据库-网络教程与技术
-亦是美网络...
对编程有一定了解的小伙伴都知道,一般情况下使用微软的visual studio进行编程开发都会搭配自家的SQL server.Access数据库,而开发web程序一般情况下PHP搭配MySQL使用,但 ...
- navicat远程连接mysql很慢_解决Navicat远程连接mysql很慢的方法
ubuntu 下 /etc/mysql/mysql.conf.d [mysqld] skip-name-resolve 增加该字段即可 如果增加该字段,这无法使用本地ip进行登入, 登陆到MySql ...
- matlab 连接mysql数据库_【转】matlab 连接 mysql 数据库
首先要安装mysql驱动程序包,详细步骤如下: Step 1: 将mysql-connector-java-5.1.7-bin.jar文件拷贝到......\MATLAB\R2009a\java\ja ...
- php连接不到mysql怎么解决,怎么解决php无法连接mysql的问题
解决php无法连接mysql的问题的方法:1.打开php.ini配置文件:2.修改配置[pdo_mysql.default_socket=/tmp/mysql.sock]:3.重启nginx或apac ...
- mysql打开网络访问权限_远程连接mysql 授权方法详解
今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器 ...
- c 连接mysql怎么增删改_C++ API方式连接mysql数据库实现增删改查
这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...
- php 跳板机连接mysql,使用python如何通过跳板机连接MySQL数据库
生产环境中,为了安全起见,大多数的数据库是无法在本地直接访问的,需要先连接跳板机,然后通过跳板机访问.创业天下测试数据库也是采用这种方法连接数据的,那么我们应该怎么通过Python去连接数据库呢,代码 ...
- e语言mysql中文_大佬们E语言连接MYSQL输出中文乱码怎么破
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .版本 2 .支持库 mysql .支持库 iext .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 数据库连接句柄 = 连接MySql (& ...
- linux c mysql 增删改查_Linux C语言连接MySQL 增删改查操作
Linux下想要测试mysql和memcached的性能,因为是服务器只能通过终端连接,所以考虑用C语言写测试代码.于是研究了把C怎么连接MySQL以及增删改查的代码.安装mysql-client或者 ...
- mysql root远程访问权限_解决Navicat连接MySQL数据库报错问题
今天在用Navicat连接一台虚拟机上的MySQL时报错: Host is not allowed to connect to this MySQL server 虚拟机中的MySQL是通过PHPSt ...
最新文章
- js里的document对象大全(DOM操作)
- 存储组和数据库的区别?
- jq实现文字个数限制_jQuery插件InputLimitor实现文本框输入限制字数统计
- jsp内置对象page
- Flot使用文档(转)
- 检测iOS的APP性能的一些方法
- Android中AVD(Android Virtual Device)不能启动的处理方法
- UNP学习 高级I/O函数
- Flex 4 [HostComponent] class xxx not found (AS code)
- 如何给页面加上loding_excel打印区域页面设置
- Qt 方式问题_vortex_新浪博客
- 2020年中国地质灾害和地震发生数量、受灾人数和经济损失现状,防护和治理至关重要「图」
- 网络安装CentOS 7
- Spring DI和AOP简介(一)
- SSR门户项目爬坑之路(三)
- 时间序列学习 经典案例(1)【tsfresh】预测多只股票
- turtle绘制五角星
- 码出高效JAVA代码
- Android自定义底部弹出窗-dialog(2种实现分析+源码)
- SPM(SQL Plan baseline)(11g)
热门文章
- Java中的数组,列表,集合,映射,元组,记录文字
- 如何分析线程转储– IBM VM
- 与reCAPTCHA的Spring集成
- 具有NetBeans,WebLogic 12c,JPA和MySQL数据源的Arquillian
- 将Ehcache添加到Openxava应用程序
- 如何理解 inode
- Windows 系统下使用 putty 客户端通过 SSH 远程连接 AWS 服务器
- java当前4中引用_Java的四种引用
- 惠普照片打印软件_被看错的打印机?原来打印机还可以这么玩
- java 对线程进行事务控制_Java 多线程事务回滚 ——多线程插入数据库时事务控制...