Mein Variomedia

Hier können Sie sich im Kundenmenü einloggen.




Passwort vergessen?

Weitere Logins

Sie befinden sich hier: variomedia.de > Support > Häufige Fragen (FAQ) > Webanwendungen und Datenbanken > MySQL

Fragen und Antworten

Wie kann ich mich von meinem Rechner mit einem MySQL-Server verbinden?

Falls Sie eine Verbindung von Ihrem lokalen Rechner zu einem unserer MySQL-Server aufbauen möchten, nutzen Sie bitte einen SSH-Tunnel über Ihren Webserver. Über einen SSH-Tunnel können Sie eine verschlüsselte Port-Weiterleitung von einem lokalen Port auf Ihrem Rechner über Ihren Webserver zum gewünschten MySQL-Server aufbauen.

Viele MySQL-Clients wie MySQL Workbench, SQLyog oder HeidiSQL können selbst SSH Tunnel aufbauen. Sie können einen SSH Tunnel aber auch manuell einrichten. Wir beschreiben in diesem Artikel verschiedene Verfahrensweisen, mit denen dies möglich ist.

Voraussetzungen

Bitte schalten Sie im Kundenmenü zunächst den SSH-Zugang für Ihren Benutzeraccount frei. Sie finden diese Option nach einem Klick auf das Paket (z.B. "Easy.A") und dann unter "SFTP/SSH". Es kann bis zu einer Minute dauern, bis die Freischaltung abgeschlossen ist.

Freischaltung des SSH-Zugangs im Kundenmenü

Der einfachste Weg: SSH-Tunnel unter Windows, MacOS und Linux mit Bordmitteln einrichten

Für den SSH-Tunnel können Sie einen beliebigen lokalen Port nutzen, am einfachsten ist die Nutzung des MySQL-Standard-Ports 3306. Sie stellen mit Ihrem MySQL-Client dann einfach eine Verbindung zu localhost her (als wäre Ihr Rechner der MySQL-Server), und werden im Hintergrund verschlüsselt mit Ihrem Webserver verbunden, der die Daten dann an den gewünschten MySQL-Server weiterleitet.

Unter MacOS, Linux oder Windows 10 können Sie dazu folgenden Shell-Befehl nutzen:

ssh -N -L 127.0.0.1:3306:db1.variomedia.de:3306 u12345@domain.de

Ersetzen Sie dabei "u12345@domain.de" durch Ihre Webserver-Benutzerkennung und eine Ihrer Domains und "db1.variomedia.de" durch den gewünschten MySQL-Server, und geben dann im nächsten Schritt Ihr FTP/SSH-Passwort ein. Nach der Eingabe des richtigen Kennworts erfolgt keine weitere Anzeige; der Tunnel ist dann aufgebaut. Der Tunnel besteht so lange, wie das Shell-Fenster geöffnet ist.

Nachdem der SSH-Tunnel aufgebaut wurde, können Sie eine MySQL-Verbindung mit dem Hostnamen localhost bzw. der IP-Adresse 127.0.0.1 aufbauen.

Ältere Windows-Versionen: SSH-Tunnel mit PuTTY

In den aktuellen Windows 10- und Windows 11-Versionen ist ein SSH-Client für die Shell bereits vorinstalliert. Falls Sie eine ältere Windows-Version nutzen, müssen Sie zunächst einen SSH-Client wie PuTTY installieren. Dort richten Sie dann wie folgt einen SSH-Tunnel ein:

SSH-Tunnel für MySQL mit PuTTY

Nachdem der SSH-Tunnel aufgebaut wurde, können Sie dann eine MySQL-Verbindung mit dem Hostnamen localhost bzw. der IP-Adresse 127.0.0.1 aufbauen.

MySQL-Client mit integriertem SSH-Tunnel: HeidiSQL

Einer der beliebtesten kostenfreien lokalen MySQL-Clients ist die Software HeidiSQL. In dieser Software ist das Anlegen eines SSH-Tunnels für die MySQL-Verbindung bereits enthalten. Für den Verbindungsaufbau benötigen Sie allerdings noch einen Teil aus dem PuTTY-Download-Paket: die Datei plink.exe. Sie finden die Datei auf der PuTTY-Download-Seite (siehe unten).

Legen Sie im Verbindungsmanager zunächst ein Profil für Ihre MySQL-Verbindung an und wählen Sie als Verbindungstyp "MariaDB or MySQL (SSH tunnel)". Geben Sie bitte außerdem den Servernamen (z.B. db1.variomedia.de), den Benutzernamen (z.B. u12345) und das Passwort der Datenbank an. Auch die Datenbank selbst (z.B. db12345) können Sie hier schon vorauswählen.

Verbindungsaufbau mit HeidiSQL

Im nächsten Schritt konfigurieren Sie den SSH-Tunnel. Geben Sie hier den Pfad zur heruntergeladenen plink.exe an und ergänzen Sie die Zugangsdaten Ihres SSH-Zugangs. In der Regel können Sie Ihren Domainnamen als Hostnamen mit Port 22 verwenden. Der Benutzername (hier im Beispiel "u54321") entspricht dem Benutzernamen des SSH/SFTP-Zugangs, ebenso das Kennwort.

Einrichtung des SSH-Tunnels mit HeidiSQL

Mehrere SSH-Tunnel zu verschiedenen Datenbankservern

In allen beschriebenen Varianten ist es möglich, auch mehrere SSH-Tunnel zu öffnen. Dies ist nötig, wenn Sie gleichzeitig Verbindungen zu mehr als einem Datenbankserver aufbauen wollen. Da der lokale Server immer "localhost" ist, muss die Unterscheidung anhand des Ports erfolgen. Der Standard-MySQL-Port ist 3306. Wir empfehlen, für den lokalen Verbindungsaufbau einen Port entsprechend der Servernummer auszuwählen, also beispielsweise den Port 3322 für eine Verbindung zum Server db22.variomedia.de oder 3305 für db5.variomedia.de.

Die meisten SQL-Clients erlauben die Einrichtung eines eigenen SSH-Tunnels für jede gespeicherte Verbindung. Wenn Ihre Anwendung oder Ihr SQL-Client dies nicht anbietet, empfehlen wir die Nutzung eines Programms wie ADVSoft PersistentSSH, das in der Standard Edition (39 Euro für 3 Jahre) die Einrichtung von 3 gleichzeitig nutzbaren SSH-Tunnels erlaubt. Im Gegensatz zu den beschriebenen Bordmitteln der Betriebssysteme wird der SSH-Tunnel zudem automatisch beim Start des Systems im Hintergrund geöffnet, so dass er jederzeit nutzbar ist.

SSH-Tunnel im Netzwerk für mehrere Clients bereitstellen

Es ist möglich, den SSH-Tunnel auf einem PC so zu konfigurieren, dass er auch anderen Rechnern im gleichen Netzwerk zur Verfügung steht. Anstelle der lokalen IP 127.0.0.1 müssen Sie dazu die IP des Rechners im Netzwerk angeben, also z.B. 192.168.1.123. Gegebenenfalls muss die Verwendung des SSH-Tunnels über den PC dann noch in der Firewall freigegeben werden. Bezogen auf das oben genannte Beispiel würde der Befehl zum Öffnen des SSH-Tunnels dann lauten:

ssh -N -L 192.168.1.123:3306:db1.variomedia.de:3306 u12345@domain.de

Diese Konfiguration hat den großen Vorteil, dass nur auf einem PC die SSH-Zugangsdaten des Webspace bekannt sein müssen. Alle anderen Geräte im Netzwerk können auf den SSH-Tunnel zugreifen, ohne die SSH-Zugangsdaten kennen zu müssen.

SSH-Zugang auf Tunnel einschränken

Da ein SSH-Zugang den vollen Zugriff auf den Webserver-Benutzeraccount ermöglicht, kann es in manchen Fällen erwünscht sein, die Benutzerrechte auf die Nutzung von Tunneln zum Datenbankserver zu beschränken. Dies ist jedoch nur bei der Nutzung von SSH-Schlüsseln zur Authentifizierung möglich. Bei Fragen zur Nutzung von SSH-Schlüsseln beachten Sie den zugehörigen FAQ-Artikel in den Links.

Um einen SSH-Zugang auf die Nutzung von Tunneln zu beschränken, muss dem Public Key folgende zusätzliche Optionen in der authorized_keys Datei voran gestellt werden:

no-pty,no-X11-forwarding,permitopen="dbX.variomedia.de:3306",command="/bin/false"

Ersetzen Sie bitte dbX durch den gewünschten Datenbankserver. Sie können auch "*:3306" statt "dbX.variomedia.de:3306" nutzen, um den Zugriff auf alle Datenbankserver zu erlauben.

Die aus Konfiguration und Key zusammen gesetzte Zeile sieht dann wie in diesem Beispiel aus:

Beispiel für authorized_keys-Datei mit Beschränkung für SSH-Tunnel

Links


3306
localhost
MySQL
SSH
Tunnel