首頁 >資料庫 >mysql教程 >如何使用Java透過SSH隧道連接遠端MySQL資料庫?

如何使用Java透過SSH隧道連接遠端MySQL資料庫?

Patricia Arquette
Patricia Arquette原創
2024-12-01 20:00:13352瀏覽

How Can I Connect to a Remote MySQL Database via SSH Tunnel Using Java?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn