iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Java中SSH秘钥连接mysql数据库的方法
  • 685
分享到

Java中SSH秘钥连接mysql数据库的方法

2023-06-20 12:06:29 685人浏览 独家记忆
摘要

这篇文章主要介绍“Java中ssh秘钥连接mysql数据库的方法”,在日常操作中,相信很多人在Java中SSH秘钥连接Mysql数据库的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中SSH秘钥连

这篇文章主要介绍“Java中ssh秘钥连接mysql数据库的方法”,在日常操作中,相信很多人在Java中SSH秘钥连接Mysql数据库的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中SSH秘钥连接mysql数据库的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

当目标数据库不能直连的,需要一个服务器作为中间跳板的时候,我们需要通过SSH通道连接数据库。

ps:使用ssh连接,相当于本地开了个端口去连接远程的服务,就是ssh通道,本地起的项目监听本地的端口,就可以使用这个通道进行数据传输。

1、引入依赖

<dependency>            <groupId>com.jcraft</groupId>            <artifactId>jsch</artifactId>            <version>0.1.55</version> </dependency>

2、代码编写

#ssh连接是否开启ssh.forward.enabled=true#SSH连接跳板机地址 必填ssh.forward.host=#SSH连接端口  必填  固定ssh.forward.port=22#SSH连接用户名  必填  ssh.forward.username=#SSH连接密码 ssh.forward.passWord=#本地起的  必填  固定ssh.forward.from_host=localhost#本地开启的端口  必填 ssh.forward.from_port=3307#需要监听的远程服务的ip  必填ssh.forward.to_host=#需要监听的远程端口  必填ssh.forward.to_port=3306#SSH连接秘钥地址,也可以使用rsa.ppk文件ssh.identity=C:\\Users\\69425\\.ssh\\id_rsa

2.1、配置 application.ssh.properties文件

Java中SSH秘钥连接mysql数据库的方法
Java中SSH秘钥连接mysql数据库的方法
Java中SSH秘钥连接mysql数据库的方法

2.2、配置 SshConfiguration代码

import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch.Session;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.WEB.servlet.ServletContextInitializer;import org.springframework.stereotype.Component;import javax.servlet.ServletContext;import javax.servlet.ServletException;import java.io.IOException;import java.util.Properties;@Slf4j@Componentpublic class SshConfiguration implements ServletContextInitializer {    public SshConfiguration() {        try {            Properties p = new Properties();            p.load(getClass().getResourceAsStream("/application.ssh.properties"));            //如果配置文件包含ssh.forward.enabled属性,则使用ssh转发            if (p.getProperty("ssh.forward.enabled") != null) {                log.info("ssh forward is opend.");                log.info("ssh init ……");                JSch jSch = new JSch();                //需要使用秘钥时添加                jSch.addIdentity(p.getProperty("ssh.identity"));                Session session = jSch.getSession(p.getProperty("ssh.forward.username"), p.getProperty("ssh.forward.host"), Integer.parseInt(p.getProperty("ssh.forward.port")));                session.setConfig("StrictHosTKEyChecking", "no");                session.setPassword(p.getProperty("ssh.forward.password"));                session.connect();                session.setPortForwardingL(p.getProperty("ssh.forward.from_host"), Integer.parseInt(p.getProperty("ssh.forward.from_port")), p.getProperty("ssh.forward.to_host"), Integer.parseInt(p.getProperty("ssh.forward.to_port")));            } else {                log.info("ssh forward is closed.");            }        } catch (IOException e) {            log.error("ssh IOException failed.", e);        } catch (JSchException e) {            log.error("ssh JSchException failed.", e);        } catch (Exception e) {            log.error("ssh settings is failed. skip!", e);        }    }    @Override    public void onStartup(ServletContext servletContext) throws ServletException {        log.info("已使用ssh连接");    }}

2.3、application.yum

spring:  datasource:#  localhost:3307 这里是ssh.forward.from_host:ssh.forward.from_port    url: jdbc:mysql://localhost:3307/mysql?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8#  mysql数据库连接用户名    username: #  mysql数据库连接密码    password:     driver-class-name: com.mysql.cj.jdbc.Driver#   使用了druid去配置及监控连接池和本文无关,可加可不加    druid:      initial-size: 2      min-idle: 1      max-active: 10      max-wait: 60000      time-between-eviction-runs-millis: 60000      min-evictable-idle-time-millis: 300000      validation-query: select 'x'      test-while-idle: true      test-on-borrow: false      test-on-return: false      pool-prepared-statements: true

3、启动项目

Java中SSH秘钥连接mysql数据库的方法

当看到这里**“已使用ssh连接”**就可以了是连接成功了。

4、出现异常报错

com.jcraft.jsch.JSchException: invalid privatekey: [B@53a7a60c

这是秘钥问题,这个异常只在使用秘钥时候才会有。是秘钥解析失败,并不是使用秘钥连接失败。如果出现这个异常可以到这篇文章中查看:详解Java使用Jsch与sftp服务器实现ssh免密登录。

这个依赖已经很久没更新了。但是目前本人未发现更好的ssh连接jar包 ↩︎

到此,关于“Java中SSH秘钥连接mysql数据库的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Java中SSH秘钥连接mysql数据库的方法

本文链接: https://www.lsjlt.com/news/296453.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中SSH秘钥连接mysql数据库的方法
    这篇文章主要介绍“Java中SSH秘钥连接mysql数据库的方法”,在日常操作中,相信很多人在Java中SSH秘钥连接mysql数据库的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中SSH秘钥连...
    99+
    2023-06-20
  • Java SSH 秘钥连接mysql数据库的方法
    当目标数据库不能直连的,需要一个服务器作为中间跳板的时候,我们需要通过SSH通道连接数据库。 ps:使用ssh连接,相当于本地开了个端口去连接远程的服务,就是ssh通道,本地起的项目...
    99+
    2024-04-02
  • mysql连接数据库的方法
    小编给大家分享一下mysql连接数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!连接方法:1、打开DOS窗口,进入目录...
    99+
    2024-04-02
  • C#连接Mysql数据库的方法
    C#连接Mysql数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!本文讲的是C#连接Mysql数据库,下文附有详...
    99+
    2024-04-02
  • .net连接mysql数据库的方法
    小编给大家分享一下.net连接mysql数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!net连接mysql数据库的方...
    99+
    2024-04-02
  • Android连接MySQL数据库的方法
    由于之前那篇文章是在大学期间好多东西都不太懂的时候写的,放到现在再来看总感觉到处都是问题(或者说已经看不懂啦)。但是看到每天上涨的那点阅读量,想了想还是把这个再用相对正常的方式再重写一遍吧。 为了省事本项目的服务端采用SpringBoot ...
    99+
    2023-10-07
    mysql 数据库 android
  • Nacicat连接MySQL数据库的方法
    Nacicat连接MySQL数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!1、安装好MySQL和Navicat...
    99+
    2024-04-02
  • vc 连接mysql数据库的方法
    这篇文章给大家分享的是有关vc 连接mysql数据库的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。vc连接mysql数据库的方法:首先打开VC6;然后在中间列表框中添加本地...
    99+
    2024-04-02
  • php7连接mysql数据库的方法
    这篇文章主要为大家展示了php7连接mysql数据库的方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php7连接mysql数据库的方法”这篇文章吧。php有什么用php是一个嵌套的缩写名称,指...
    99+
    2023-06-06
  • java连接Access数据库的方法
    java连接Access数据库的方法,分享给大家步骤:现在我们一般使用的编译环境是java SE 1.8,不支持odbc的连接方式,所以可以用jdbc的连接方式,还要在网上下载一个jdbc的驱动包。(这里用了Access_JDBC30.ja...
    99+
    2023-05-31
    java access 连接
  • Java连接mysql数据库
    文章目录 一、Java连接mysql数据库1.1 流程1.2 一个测试连接的java程序 二、优化:创建一个工具类2.1 存在的问题2.2 创建配置文件和工具类2.3 测试使用工具类进行CRUD操作 三、SQL注入问题3.1...
    99+
    2023-08-16
    数据库 mysql java jdbc sql注入
  • mysql登录数据库连接的方法
    这篇文章主要介绍了mysql登录数据库连接的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql登录数据库连接的方法:首先打开Workb...
    99+
    2024-04-02
  • ASP连接MySQL数据库的方法(转)
    ASP连接MySQL数据库的方法(转)[@more@]<% '测试读取MySql数据库的内容strconnection="driver={mysql odbc 3.51 driver};database=w...
    99+
    2024-04-02
  • Java连接各种数据库的方法
    本篇内容介绍了“Java连接各种数据库的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JDBC里统一的使用方法:Class.for(jd...
    99+
    2023-06-17
  • java中ATM与数据库Mysql的连接
    import java.sql.*;  import java.util.*;  public class ATM1 ...
    99+
    2024-04-02
  • ubuntu环境下使Java连接MySQL数据库的方法
    小编给大家分享一下ubuntu环境下使Java连接MySQL数据库的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!对于jar包,我们需要将它配置到开发工具中去。如图所示,第一步,我们先在项...
    99+
    2024-04-02
  • Java中String的JdbcTemplate连接SQLServer数据库的方法
      很久没写文章了,一方面是最近几个月比较忙,没太多时间,另一方面是最近拖延症严重,写文章的想法总是一拖再拖。今天找一个小案例写一下,与懒惰对抗一下。   首先说一下背景,我们在项目...
    99+
    2024-04-02
  • 连接池的奥秘:解锁数据库性能的黄金钥匙
    数据库是现代应用程序的支柱,它的性能直接影响整体系统的响应时间和用户满意度。连接池是一种关键技术,它可以显着提高数据库访问的效率,从而提升应用程序的性能。 连接池的工作原理 连接池本质上是一个容器,它预先生成并存储一定数量的数据库连接。当...
    99+
    2024-04-02
  • pycharm中django框架连接mysql数据库的方法
    目录1、首先下载安装pymysql模块。 2、导入库 4、注意:不要忘记了在数据库中创建该数据库 5、连接mysql数据库 6、测试程序能否能连接上 1、首先下载安装pym...
    99+
    2024-04-02
  • C#连接MySQL数据库的方法步骤
    目录一、需求二、新建 C# 项目三、MySQL数据库四、MySqlHelper五、测试总结一、需求 C# 使用 MySQL 数据库的情况还是比较少的,大部分使用 Windows 平台...
    99+
    2023-01-11
    c#连接mysql数据库配置 c连接mysql数据库 c#连接mysql数据库语法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作