Problemstellung:
Zugriff auf eine MySQL-Datenbank, die auf einem Remote-Server gehostet wird Server über einen sicheren SSH-Tunnel von einem Java Anwendung.
Lösung:
Um einen SSH-Tunnel einzurichten und von Java aus eine Verbindung zu einer entfernten MySQL-Datenbank herzustellen, können Sie die JSch-Bibliothek nutzen. Hier ist eine Übersicht, wie Sie dies erreichen können:
Verwenden Sie die JSch-Session-Klasse, um einen Tunnel von einem lokalen aus zu erstellen Port (z. B. 1234) zum Port der Datenbank (z. B. 3306) auf der Fernbedienung Server.
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();
Bei aktivem SSH-Tunnel können Sie eine JDBC-Verbindung zu MySQL herstellen Datenbank unter Verwendung des von Ihnen erstellten lokalen Ports.
import java.sql.Connection; import java.sql.DriverManager; // Establish a JDBC connection Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:1234/[database]", "username", "password" );
Beispiel Verwendung:
// Example usage: retrieve data from the remote database Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM table_name");
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SSH-Tunneling eine sichere Verbindung zu einer Remote-MySQL-Datenbank von Java aus herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!