使用Java 進行SSH 隧道以實現遠端MySQL 資料庫連線
使用Java 透過SSH 隧道連接到遠端方法是利用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中文網其他相關文章!