Maison > base de données > tutoriel mysql > Comment se connecter à une base de données MySQL distante via le tunneling SSH en Java ?

Comment se connecter à une base de données MySQL distante via le tunneling SSH en Java ?

Patricia Arquette
Libérer: 2024-11-29 10:28:11
original
684 Les gens l'ont consulté

How to Connect to a Remote MySQL Database via SSH Tunneling in Java?

Établir une connexion MySQL à distance via SSH en Java

L'établissement d'une connexion à une base de données MySQL distante via SSH à partir d'une application Java peut être réalisé en tirant parti d'une combinaison de tunneling SSH et de JDBC. Voici comment procéder :

Tunneling SSH

  1. Sur votre machine locale, configurez un tunnel SSH pour transférer le port 1234 de votre machine vers le port 3306. sur le serveur MySQL distant. Pour ce faire, à l'aide du client de ligne de commande de SSH, exécutez : ssh -L 1234:localhost:3306 mysql.server.remote
  2. Utilisez la bibliothèque JSch de Java pour créer une session SSH qui transmet le port 1234 au serveur distant.

JDBC Connexion

Une fois le tunnel SSH établi, vous pouvez utiliser JDBC pour vous connecter à la base de données MySQL :

  1. Créez un objet java.sql.Connection, en précisant l'URL JDBC comme jdbc:mysql://localhost:1234/[database].
  2. Authentifiez-vous avec vos informations d'identification MySQL et poursuivez votre base de données opérations.

Exemple de code

Voici un exemple de code de base pour démontrer la connexion :

import com.jcraft.jsch.*;
import java.sql.*;

public class ConnectToRemoteMySQLThroughSSH {

   public static void main(String[] args) throws JSchException, SQLException {
      // SSH Session Setup
      JSch jsch = new JSch();
      Session session = jsch.getSession("username", "host", 22);
      session.setConfig("StrictHostKeyChecking", "no");
      session.setPassword("password");
      session.connect();

      // Port Forwarding
      session.setPortForwardingL(1234, "localhost", 3306);

      // JDBC Connection
      Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:1234/[database]", "root", "password");

      // Database Operations...

      connection.close();
      session.disconnect();
   }
}
Copier après la connexion

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