Maison > base de données > tutoriel mysql > Comment se connecter en toute sécurité à une base de données MySQL distante depuis Java à l'aide du tunneling SSH ?

Comment se connecter en toute sécurité à une base de données MySQL distante depuis Java à l'aide du tunneling SSH ?

Mary-Kate Olsen
Libérer: 2024-11-29 05:11:15
original
593 Les gens l'ont consulté

How to Securely Connect to a Remote MySQL Database from Java using SSH Tunneling?

Connexion à une base de données MySQL distante via SSH en Java

Énoncé du problème :

Accès à une base de données MySQL hébergée sur une base de données distante serveur utilisant un tunnel SSH sécurisé depuis un serveur Java application.

Solution :

Pour établir un tunnel SSH et vous connecter à une base de données MySQL distante depuis Java, vous pouvez exploiter la bibliothèque JSch. Voici un aperçu de la façon d'y parvenir :

  1. Créer un tunnel SSH :

Utilisez la classe JSch Session pour créer un tunnel à partir d'un port (par exemple, 1234) au port de la base de données (par exemple, 3306) sur le serveur distant serveur.

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

// Establish an SSH session
JSch jsch = new JSch();
Session session = jsch.getSession("username", "remoteServerAddress", 22);

// Set connection parameters
session.setPassword("password");
session.setPortForwardingL(1234, "localhost", 3306);

// Connect to the SSH server
session.connect();
Copier après la connexion
  1. Établir une connexion JDBC à MySQL :

Avec le tunnel SSH actif, vous pouvez établir une connexion JDBC à MySQL base de données en utilisant le port local que vous avez créé.

import java.sql.Connection;
import java.sql.DriverManager;

// Establish a JDBC connection
Connection connection = DriverManager.getConnection(
  "jdbc:mysql://localhost:1234/[database]", 
  "username", 
  "password"
);
Copier après la connexion

Exemple Utilisation :

// Example usage: retrieve data from the remote database
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM table_name");
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!

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