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]"; // ... } }
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!