Maison > base de données > tutoriel mysql > Comment puis-je me connecter à une base de données MySQL distante via un tunnel SSH à l'aide de Java ?

Comment puis-je me connecter à une base de données MySQL distante via un tunnel SSH à l'aide de Java ?

Patricia Arquette
Libérer: 2024-12-01 20:00:13
original
415 Les gens l'ont consulté

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

Tunneling SSH avec Java pour la connectivité de la base de données MySQL distante

Pour se connecter à une base de données MySQL distante via un tunnel SSH utilisant Java, une approche efficace est d'exploiter la bibliothèque JSch. Cette bibliothèque vous permet d'établir des connexions SSH2 et d'utiliser diverses fonctionnalités telles que la redirection de port.

Considérez un scénario dans lequel vous souhaitez accéder à distance à un serveur MySQL écoutant sur le port 3306. Depuis votre machine locale, vous pouvez établir un SSH. tunnel utilisant JSch comme suit :

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

        // ...
    }
}
Copier après la connexion

Une fois le tunnel SSH établi, vous pouvez utiliser une connexion JDBC à MySQL comme d'habitude, en utilisant le port local (1234) spécifié dans le tunnel SSH.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal