栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

关于服务器MySQL无法直连需要ssh连接的解决办法

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于服务器MySQL无法直连需要ssh连接的解决办法

配置连接

package com.***.***.***;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

import java.util.Properties;

public class SShConnectUtils {

        String user = "user";
        // 服务器登录名
        String password = "password";
        // 登陆密码
        String host = "***.**.***.***";
        //服务器公网IP
        int port = 22;
        // 跳板机ssh开放的接口   默认端口 22
        int local_port = 3307;
        // 这个是本地的端口,很重要!!!选取一个没有占用的port即可
        String remote_host = "127.0.0.1";
        // 要访问的mysql所在的host    服务器局域网IP(127.0.0.1也行)
        int remote_port = 3307;
        // 服务器上数据库端口号
        Session session = null;
        
        public void SSHConnection() throws Exception{
            try {
                JSch jsch = new JSch();
                session = jsch.getSession(user, host, port);
                session.setPassword(password);
                session.setConfig("StrictHostKeyChecking", "no");
                // 日志打印自己脑补
                session.connect();
                session.setPortForwardingL(local_port, remote_host, remote_port);
            } catch (Exception e) {
                // do something
            }
        }
        
        public void closeSSH () throws Exception
        {
            this.session.disconnect();
        }


}

监听连接

package com.***.***.***;
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
@Component
public class ConnectListener implements ServletContextListener {

        private SShConnectUtils conexionssh;

        public ConnectListener() {
            super();
        }

        
        @Override
        public void contextInitialized(ServletContextEvent arg0) {
            // 建立连接
            System.out.println("Context initialized ... !nnn");
            try {
                conexionssh = new SShConnectUtils();
                conexionssh.SSHConnection();
                System.out.println("nnn成功建立SSH连接!nnn");
            } catch (Throwable e) {
                System.out.println("nnnSSH连接失败!nnn");
                e.printStackTrace(); // error connecting SSH server
            }
        }


    
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        // 断开连接
        System.out.println("Context destroyed ... !nnn");
        try {
            conexionssh.closeSSH(); // disconnect
            System.out.println("nnn成功断开SSH连接!nnn");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("nnn断开SSH连接出错!nnn");
        }
    }

}

yml配置

spring:
  datasource:
  	#3307为服务器mysql端口
    url: jdbc:mysql://localhost:3307/sentences?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&autoReconnect=true
    #服务器mysql用户名密码
    username: user
    password: password
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号