Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit Java über einen SSH-Tunnel eine Verbindung zu einer Remote-MySQL-Datenbank herstellen?

Wie kann ich mit Java über einen SSH-Tunnel eine Verbindung zu einer Remote-MySQL-Datenbank herstellen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 20:00:13352Durchsuche

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

SSH-Tunneling mit Java für Remote-MySQL-Datenbank-Konnektivität

Die Verbindung zu einer Remote-MySQL-Datenbank über einen SSH-Tunnel mithilfe von Java ist ein effektiver Ansatz besteht darin, die JSch-Bibliothek zu nutzen. Mit dieser Bibliothek können Sie SSH2-Verbindungen herstellen und verschiedene Funktionen wie die Portweiterleitung nutzen.

Stellen Sie sich ein Szenario vor, in dem Sie remote auf einen MySQL-Server zugreifen möchten, der Port 3306 überwacht. Von Ihrem lokalen Computer aus können Sie SSH einrichten Tunneln Sie mit JSch wie folgt:

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]";

        // ...
    }
}

Sobald der SSH-Tunnel eingerichtet ist, können Sie wie gewohnt eine JDBC-Verbindung zu MySQL über den lokalen Port nutzen (1234) im SSH-Tunnel angegeben.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Java über einen SSH-Tunnel eine Verbindung zu einer Remote-MySQL-Datenbank herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn