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
492 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!

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