Um von Ihrer lokalen App über SSH auf Ihren Mysql-Server zugreifen zu können (zB mit MySql-Openshift), müssen Sie nur noch eine SSH-Verbindung vor Ihrem DataSource-Objekt aufbauen versucht eine Verbindung herzustellen.
Wie immer und glücklicherweise gibt es mehrere Möglichkeiten, das zu tun, aber ich würde versuchen, das einfachste zu erklären, das für mich funktioniert hat.
1) Jcraft-Bibliothek zu Ihrem Klassenpfad hinzufügen (Wird für die Arbeit mit SSH-Verbindungen verwendet)
Wenn du Maven benutzt, füge diese Elemente zu deiner pom.xml hinzu:
%Vor%oder laden Sie es einfach von Ссылка
herunter2) Erstellen Sie eine Klasse für die Verbindung mit Ihrem SSH-Server (Hier verwenden wir die im vorherigen Schritt importierte Bibliothek)
Zum Beispiel:
%Vor%Diese Klasse enthält alle relevanten Informationen zum Aufbau einer SSH-Verbindung. Beachten Sie, dass wir nur zwei Methoden definiert haben: den Konstruktor, um die SSH-Verbindung zu instanziieren, dargestellt durch das einzige nicht statische Feld der Klasse, und andere, um die SSH-Verbindung zu trennen / zu schließen.
3) Definieren Sie einen Listener, der die ServletContextListener-Schnittstelle implementiert () und ein Objekt der in Schritt 2 definierten Klasse enthält)
Beachten Sie, dass wir versuchen, eine ssh-Verbindung zu erstellen, wenn unsere App gestartet wird, und sie zu schließen, wenn unsere App stirbt.
%Vor%4) Setzen Sie mit Spring das DataSource-Objekt wie gewohnt in Ihrer Dispatcher-servlet.xml ein, zeigt jedoch auf Ihren footierten Port
%Vor%Und das ist alles. Eine andere Möglichkeit könnte sein, eine eigene DataSource zu erstellen, die von Spring bereitgestellte zu erweitern und ihr die SSH-Funktionalität hinzuzufügen. Vielleicht ist die hier beschriebene Lösung besser isoliert.
In openshipt verbinden Sie sich direkt mit der MySQL Datenbank.
Openshift bietet Ihnen eine Reihe von Umgebungsvariablen. Siehe: Ссылка
Sie müssen diese zum Verbinden verwenden
Innerhalb Ihres application.properties
können Sie Umgebungsvariablen wie folgt verwenden:
Dabei ist OPENSHIFT_MYSQL_DB_HOST
der Name der Umgebungsvariablen und localhost
der Standardwert.
Tags und Links mysql spring ssh spring-boot