FAQ - Externer Zugriff auf MySQL-Datenbank

Häufig gestellte Fragen

Zur Übersicht

Hinweis: PuTTY bzw. andere Software ist oft gar nicht nötig. Aktuelle MySQL-Frontends wie z. B. Navicat bringen diese Funktionalität bereits mit.

Download Putty

SSHTunnelClient

Das „Tunneln“ gestaltet sich beispielsweise auch mit dem „SSHTunnelClient“ sehr einfach. Dies ist ein Frontend zu plink.exe und sehr einfach zu bedienen. Sie ist je nach Anwendungsgebiet sogar kostenlos.

Mittels Portforwarding werden TCP/IP Verbindungen die bei Ihnen zu Hause auf localhost:<port> zugreifen über eine verschlüsselte Verbindung auf einen, vorher zugewiesenen, localhost Port des Web- und SQL Servers weitergeleitet. So werden die Daten dieser Verbindung nicht ungeschützt über das Internet übertragen und für den Web/SQL Server sieht es aus als ob eine interne Anwendung eine Verbindung zu ihm aufbaut. Dies ist natürlich ohne Probleme möglich, wohingegen von Extern kommende Verbindungen zur MYSQL Datenbank aus Sicherheitsgründen abgewiesen werden.

Ein externer Zugriff auf die MySQL-Datenbanken, also z.B. ein Zugriff über das Internet von Ihrem PC zu Hause aus mittels einer Verwaltungssoftware für Datenbanken, ist aus Sicherheitsgründen leider nicht gestattet. Wenn Sie jedoch einen SSH-Account in Ihrem Tarif bzw. einen SSH-Zugang per Addon gebucht haben, so können Sie dies mittels eines sogenannten SSH-Tunnels bewerkstelligen. Infos hierzu finden Sie hier.

Eine von Extern kommende TCP/IP Verbindung zu unseren Datenbanken ist aus Sicherheitsgründen nicht möglich. Es gibt jedoch die Möglichkeit, mittels Portforwarding über Ihren SSH Zugang Zugriff auf die Datenbank zu erhalten.

Unter Windows:

  1. SSH Clienten installieren:
    Unter Windows ist der SSH Client Putty sicherlich einer der beliebtesten SSH Clienten. Er muß nur als (ausführbare) EXE-Datei heruntergeladen werden und kann sofort ohne Installation benutzt werden.
  2. Normale SSH Verbindung (mit PUTTY) einrichten:
    1. Gehen sie zur Category „Session“.
      Hier tragen sie als Hostname www.<ihredomain>.tld ein und wählen als Protokoll „SSH“ aus. Der korrekte Port (22) wird automatisch eingestellt.
    2. Nun gehen Sie zur Category „SSH“.
      Hier sollte als „Preferred SSH Protocol Version“ die „2“ ausgewählt werden.
  3. SSH-Tunnel einrichten:
    Nun gehen sie unter Category auf „Tunnels“. Dort geben sie unter Source Port „3306“ an und unter Destination „localhost:3306“ (bzw. mysql4.DOMAIN.TLD:3306 für MySQL 4 oder mysql5.DOMAIN.TLD:3306 für MySQL 5)und bestätigen das Ganze mit einem Klick auf „Add“.
  4. Einstellungen speichern:
    Gehen sie wieder zur Kategory „Session“ und geben dort unter dem Text „Saved Sessions“ einen Namen für ihre Session ein. Mit einem Klick auf Save haben sie die Einstellungen für das nächste mal gesichert und können diese durch Markieren des vorher erstellten Namens und einen Klick auf „Load“ wiederherstellen.
  5. Verbindung öffnen:
    Als letztes müssen sie nur noch unten im Fenster auf Open klicken und eventuell auftauchende Meldungen wegen neuen Zertifikaten bestätigen

Solang Putty läuft können sie nun mit einer TCP/IP Verbindung auf localhost:3306 (MySQL 3), wie mit Ihren Scripten, welche auf Ihrem Webspace liegen würden, auf Ihre Datenbank zugreifen.

Sollte bei Ihnen schon eine Anwendung den lokalen TCP/IP Port 3306 belegen, müssen sie den Tunnel eventuell auf einen anderen Port legen. Bei Windows müssen die dafür die Portangabe im einzelnen Port Eingabefeld ändern.

Unter Linux / *BSD / andere Unix:

Unter unixfähigen Betriebssytemen ist meistens schon ein SSH-Client installiert. Dort kann man einen SSH Tunnel mit folgendem Befehl erstellen (Wobei je nach installiertem SSH Client die Parameter etwas abweichen können, dann hilft „ssh –help“):

ssh -l username -L 3306:localhost:3306 www.<ihredomain>.tld

Auch hier müssen sie bei der ersten Verbindung den Fingerprint des McDomain-Servers bestätigen.

Sollte bei Ihnen schon eine Anwendung den lokalen TCP/IP Port 3306 belegen, müssen sie den Tunnel eventuell auf einen anderen Port legen.

Sie sollten beachten, dass Portforwarding nicht dazu gedacht ist, ständig eine Verbindung aufrecht zu erhalten, sondern Primär um kurze Tests auszuführen oder Daten in die MySQL-Datenbank zu schreiben.