Anleitungen im Zusammenhang mit Beach

So greifst du über SSH auf eine Beach-Instanz-Datenbank zu

Stelle eine Verbindung zu deiner MariaDB-Datenbank von einem anderen Computer aus her.

Übersicht

Diese Anleitung führt dich durch die Schritte, mit denen du dich von einem entfernten Computer über SSH mit der MariaDB-Datenbank deiner Instanz verbinden kannst. Wir gehen davon aus, dass du Folgendes bereithältst:

  • ein Beach-Projekt mit mindestens einer Instanz
  • einen SSH-Client (z. B. OpenSSH oder Putty) und ein persönliches SSH-Schlüsselpaar
  • einen MySQL- oder MariaDB-kompatiblen Client, z. B. das "mysql"-Client-Binary oder ein Tool wie "TablePlus" für Mac, "Valentina Studio", MySQL Workbench oder die integrierte Datenbankunterstützung in PhpStorm

Wenn du noch nie über SSH auf deine Instanz zugegriffen hast, solltest du zuerst unsere Anleitung zum SSH-Zugang lesen.

Hinter den Kulissen

Deine Instanz verwendet eine Datenbank, die sich entweder auf einem gemeinsam genutzten Datenbankserver oder auf einem dedizierten Server oder sogar einem Cluster befindet. Unabhängig davon, welchen Server du verwendest, ist die Verbindungsmethode immer die gleiche.

Aus Sicherheitsgründen ist keiner der Datenbankserver direkt über das Internet zugänglich. Daher gibt es grundsätzlich zwei Möglichkeiten, eine Verbindung zu deiner Datenbank herzustellen:

  1. direkt von der Instanz aus, indem du dich über SSH am Instanz-Container anmeldest
  2. von einem entfernten Computer (z. B. deinem Notebook) durch SSH-Port-Forwarding

Der einfachste Weg, eine Verbindung zu deiner Datenbank herzustellen, ist die Einrichtung einer Art SSH-Tunnel, der den Port des Datenbankservers an deinen Computer weiterleitet. Sobald die Portweiterleitung eingerichtet ist, kannst du auf den Datenbankserver zugreifen, als ob er auf deinem Computer laufen würde (über "localhost").

Um einen solchen Tunnel einzurichten, stellst du eine Verbindung über SSH von deinem Computer zum Beach SSH Gateway ("jump host") her, von dort eine Verbindung über SSH zu deiner Beach-Instanz und von deiner Beach-Instanz eine Verbindung zu Port 3306 deines Datenbankservers. Das hört sich vielleicht etwas kompliziert an, kann aber in der Regel mit einem einzigen Befehl erledigt werden. Und es ist sicherer, als den Datenbankserver dem Internet auszusetzen.

Der einfache Weg

Wie bereits in der Anleitung für den SSH-Zugang erwähnt, unterstützen moderne Versionen von SSH eine Option für die Verbindung über einen sogenannten "Jump Host" (den Parameter -J), während ältere Versionen diese Möglichkeit nicht haben. Der einfachste (und empfohlene) Weg ist, den Tunnel-Befehl von der Instanz-Detailseite zu kopieren, indem du im Feld Verbindungsinfo nach SSH-Tunnel (über Instanz) suchst. Er sieht folgendermaßen aus:

ssh -nNT -J beach@ssh.flownative.cloud -L 3399:database-...-cc609b4211b9.beach:3306 beach@instance-45bdb1cc-...-db7a012c0599.beach

Nachdem du den Tunnel geöffnet hast, kannst du dich mit einem beliebigen MySQL-Client mit den Anmeldeinformationen aus dem Feld Verbindungsinformationen mit 127.0.0.1:3399 verbinden, um auf die Datenbank zuzugreifen.

Die Universal Port Forward Methode

Falls deine OpenSSH-Version zu alt ist, musst du einen Eintrag in deiner ~/.ssh/config-Datei erstellen, der es dir ermöglicht, dich mit jeder Beach-Instanz zu verbinden, auf die du Zugriff hast, indem du einfach die Instanz-Kennung verwendest:

ssh instance-12abc345d-abcd-1ad2-361c-ab1a032d0234

Damit das funktioniert, musst du Folgendes in ~/.ssh/config hinzufügen:

Host instance-*
User beach
Hostname %h.beach
ProxyBefehl ssh beach@ssh.flownative.cloud -W %h:%p

Wenn du das hast, brauchst du dich zumindest nicht mehr um den jump-host-Teil zu kümmern und dein Computer weiß, wie er sich mit jedem Host namens "instance-..." verbinden kann.

Jetzt findest du den Namen des Datenbank-Hosts in den Verbindungsdetails deiner Instanz und du kannst eine Portweiterleitung starten:

ssh -nNT -L 3399:database-...-a335023289b5.beach:3306 beach@instance-12abc345d-...-ab1a032d0234.beach

Du solltest jetzt in der Lage sein, über den lokalen Port 3399 deines Computers mit dem Datenbankserver zu kommunizieren. Achte nur darauf, dass du "127.0.0.1" als Hostname und Port "3399" für die Konfiguration deines MySQL/MariaDB-Clients verwendest.

Wenn du das Kommandozeilentool "mysql" auf deinem Computer installiert hast, kannst du dich wie folgt mit deiner Datenbank verbinden:

mysql --user=<Dein-Datenbank-Benutzername> --port=3399 --password=<Dein-Datenbank-Passwort> --database=<Dein-Datenbank-Name> --host=127.0.0.1