Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Stellen Sie über SSH mit Java eine Verbindung zur entfernten MySQL-Datenbank her

Soweit ich weiß, möchten Sie auf einen MySQL-Server zugreifen, der auf einem Remote-Computer ausgeführt wird und beispielsweise Port 3306 über einen SSH-Tunnel abhört.

Um einen solchen Tunnel von Port 1234 auf Ihrem lokalen Rechner zu Port 3306 auf einem Remote-Rechner mit dem Befehlszeilen-SSH-Client zu erstellen, würden Sie den folgenden Befehl auf Ihrem lokalen Rechner eingeben:

ssh -L 1234:localhost:3306 mysql.server.remote

Um dasselbe von Java aus zu tun, könnten Sie JSch verwenden , eine Java-Implementierung von SSH2. Von seiner Website:

Mit JSch können Sie sich mit einem sshd-Server verbinden und Portweiterleitung, X11-Weiterleitung, Dateiübertragung usw. verwenden, und Sie können seine Funktionalität in Ihre eigenen Java-Programme integrieren. JSch ist unter einer BSD-Style-Lizenz lizenziert.

Sehen Sie sich zum Beispiel PortForwardingL.java an . Sobald die Sitzung verbunden ist, erstellen Sie Ihre JDBC-Verbindung zu MySQL mit etwas wie jdbc:mysql://localhost:1234/[database] als Verbindungs-URL.