配置连接公司服务器上的数据库

pull/1/head
xiaoning 3 weeks ago
parent 47f964b366
commit 040d488812

@ -287,6 +287,11 @@
<version>0.4.8</version> <version>0.4.8</version>
</dependency> </dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA7dz4VrLj5WTWaU2mEh/RJXj7zYJhVNrQjuGPftAejkgNWH6l
yNWNjep7Ku+XFSuYGIv23FRrMDBM/HSxwlIAybcOmsMc8R5uPodAgHfy/bIoLSuS
k9JajpSqIkCFM/fpOBJH3fzWR8bJm+ob4/4GiTBh9XQk/s1+B6F0gAjpX0DO+QV3
HItH2kpVaNnfoy3549+t1rF72RUwhrVegnPlXi877mZCYDPkKe+VHrOqqIOz/5UL
d24K7K+0y1GKsAZx5ZU/eDO9j38Yec2GCkZh3g7v9hPzKMAXn1QfJgk/rRALnlMp
zsDX7AjyJYosQ8HnjIo1Ei5NN/wCdwUcHDDlQQIDAQABAoIBAFnZS7dYKIyom/M4
AQC8owCQJDF7S+/FHd2y50TEMZ6WKfBhGpdzz14pke/kg8Hb7z5qdEvC2aBgxlvg
apsX5bNMYghkpkSQNZ2J8nv0k0VwbAuv91S+MzXDg0af75DzVtW21g3M6VZAiTxL
YNCszmQ48e/JOQZEshQI0VxhwWGYe4kP87QUPh7qN9nH6rAH6dFHPWvqnWR6kimu
ymQkWKx3mqrvmge8b42VhgPKhoBvrysl11jH/EFrf+T6VBGcxdyWaYLqF2SUQ77n
9hNZvAopY+qn0EeJ/DsEpePDu1jtS+MUnn7jnOAZvC0nWVoWhdm6DUtdSGbO4mFI
MHjEGGcCgYEA9nymDNG0ATDSuS5rk0Uxt+M2h8sqjJhXr6Cu3hnOzoaC5QKrxGRv
b4sasTczxeJUpdWqWPeCrxNpA5DPUZw0AT4nkMaidMBzu0xcRg96TNR9rs3rRLn2
EIcXgfLWqjCvcRH8J2Oeuidv981eahGka/Ydz5wcf1SN6bjb+Ya9C9sCgYEA9wsd
4XPz4flQFBpLAm8IHZGbT2MkWW32YNfzm4oYk2XxlRdgKaM+Eco82+hHqSMgxewb
kx+X6nA/uWtBJp/RGeSxEcN05RJo++19m5atIIr/bu/FgA3me9XyOIuiPGvR2KM9
geYVRRUvVc11t+Q3eH417enSf4xVhNzjfsksTBMCgYBreLfx+PFSX5ZRldLj2JSw
CAq7tLLtsHLzKc11G62XUQD7l2mLbPtFmFJgGKCjVGbyE7J9rhW1/nGYU2iBvejS
7eXUczdcTplnfgjxp0f8/d16/V/qjGakmDKAv4AnnqiwVVYrWn1Xz2A7nLjg6KZX
SG2BGyE1x4lE8gw/xSbiZwKBgQDrKmftX+W/LQcvu7+/t1YwX5VKwwOtJeItWiUJ
4TF3zsljtXbS7BR/9tZsN/dPaKMgBZxSNvb0MppWtWS1kdkJHwv37untzdKmTvMN
EygHHIn/XrvRJGpNY+JKNZHglnqSEQLSDuYcdwgyU31F6jdruik4Kyc4R6x455Sf
8nz6hQKBgQCjuddHRXOyVn7f6NAeGdT/p+0eYOF78k0SQYQekXrbmt1/AMlINlfz
IUEWneeDwvRP50fSI4wJjsd27shLUloFW53GF025hirQ/XKFMKf0m/ccERkseQt2
wJkE9ajLzOlFpwOzaA8XsU5S+5ch+9DL0mzk81eYX6o3GX2no9QXRw==
-----END RSA PRIVATE KEY-----

@ -6,9 +6,12 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:mysql://localhost:3306/yj?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true # url: jdbc:mysql://localhost:3306/yj?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
# username: root
# password: 123456
url: jdbc:mysql://127.0.0.1:32768/yoga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
username: root username: root
password: 123456 password: '!Runpeng888'
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭

@ -0,0 +1,37 @@
package com.ruoyi.common.db;
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@Component//尽量加上这个
@WebListener//声明为监听器
public class SshContextListener implements ServletContextListener {
private SshTunnelConfig sshConnectionConfig;
public SshContextListener() {
super();
}
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Context initialized ... !");
try {
sshConnectionConfig = new SshTunnelConfig();
sshConnectionConfig.createSshTunnel();
} catch (Throwable e) {
e.printStackTrace(); // 连接失败
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("Context destroyed ... !");
sshConnectionConfig.closeSshTunnel();//断开ssh连接
}
}

@ -0,0 +1,56 @@
package com.ruoyi.common.db;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
@Component
public class SshTunnelConfig {
private Session session;
@Value("${ssh.host}")
private String sshHost="62.234.183.14";
@Value("${ssh.port}")
private int sshPort=22;
@Value("${ssh.user}")
private String sshUser="root";
@Value("${ssh.identity}")
private String sshIdentity="E:/yoga-app-manager/private_key/runpeng20250915.pem";
@Value("${ssh.remote.db.host}")
private String remoteDbHost="127.0.0.1";
@Value("${ssh.local.port}")
private int localPort=32768;
@Value("${ssh.remote.db.port}")
private int remoteDbPort=19116;
public void createSshTunnel() throws Exception {
JSch jsch = new JSch();
jsch.addIdentity(sshIdentity);
session = jsch.getSession(sshUser, sshHost, sshPort);
// session.setPassword(sshPassword);
// 避免检查已知主机,生产环境应考虑更安全的方式
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
// 设置本地端口转发
session.setPortForwardingL(localPort, remoteDbHost, remoteDbPort);
System.out.println("SSH隧道已建立本地端口" + localPort);
}
@PreDestroy
public void closeSshTunnel() {
if (session != null && session.isConnected()) {
session.disconnect();
System.out.println("SSH隧道已关闭");
}
}
}
Loading…
Cancel
Save