- 导入JSch和MySQL驱动程序的依赖。
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>{your version}</version> </dependency>
- 创建SSH连接和MySQL连接的配置类。
import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @Configuration public class MysqlSSHConfig { @Value("${ssh.host}") private String sshHost; @Value("${ssh.port}") private int sshPort; @Value("${ssh.user}") private String sshUser; @Value("${ssh.password}") private String sshPassword; @Value("${mysql.host}") private String mysqlHost; @Value("${mysql.port}") private int mysqlPort; @Value("${mysql.user}") private String mysqlUser; @Value("${mysql.password}") private String mysqlPassword; @Value("${mysql.database}") private String mysqlDatabase; @Bean public Session sshSession() throws JSchException { JSch jsch = new JSch(); Session session = jsch.getSession(sshUser, sshHost, sshPort); session.setPassword(sshPassword); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); return session; } @Bean public Connection mysqlConnection(Session session) throws SQLException { int localPort = 3307; session.setPortForwardingL(localPort, mysqlHost, mysqlPort); String url = "jdbc:mysql://localhost:" + localPort + "/" + mysqlDatabase + "?useSSL=false"; Connection conn = DriverManager.getConnection(url, mysqlUser, mysqlPassword); return conn; } }
Java Spring boot 使用SSH连接Mysql
最新推荐文章于 2023-10-12 10:47:28 发布
文章展示了如何在JavaSpring应用中使用JSch库建立SSH连接,并通过SSH端口转发建立到远程MySQL数据库的连接。配置类包含了必要的参数如主机名、端口、用户名和密码,并提供了创建SSH会话和数据库连接的@Bean方法。
摘要由CSDN通过智能技术生成