使用 Java 进行 SSH 隧道以实现远程 MySQL 数据库连接
使用 Java 通过 SSH 隧道连接到远程 MySQL 数据库是一种有效的方法是利用 JSch 库。该库使您能够建立 SSH2 连接并利用端口转发等各种功能。
考虑一个场景,您的目标是远程访问侦听端口 3306 的 MySQL 服务器。从本地计算机,您可以建立 SSH使用 JSch 建立隧道,如下所示:
import com.jcraft.jsch.*; public class SSHMySQLTunnel { public static void main(String[] args) throws Exception { // Replace with SSH server hostname String sshHost = "ssh.server.com"; // SSH port number int sshPort = 22; // Replace with SSH username String sshUsername = "username"; // Replace with SSH password String sshPassword = "password"; // Replace with MySQL server hostname String mysqlHost = "mysql.server.com"; // MySQL port number (assuming 3306) int mysqlPort = 3306; // Local port to forward to (1234 in this example) int localPort = 1234; JSch jsch = new JSch(); Session session = jsch.getSession(sshUsername, sshHost, sshPort); session.setPassword(sshPassword); session.connect(); int assingedPort = session.setPortForwardingL(localPort, mysqlHost, mysqlPort); System.out.println("SSH tunnel established. Forwarded port " + localPort + " to " + mysqlHost + ":" + mysqlPort); // Establish JDBC connection to MySQL using the tunnel String jdbcUrl = "jdbc:mysql://localhost:" + localPort + "/[database]"; // ... } }
建立 SSH 隧道后,您可以像平常一样使用本地端口使用 JDBC 连接到 MySQL (1234) 在 SSH 隧道中指定。
以上是如何使用Java通过SSH隧道连接远程MySQL数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!