Skip to content

HTTP-Tunnel ​

Shared Hosting (cPanel und Ähnliches) bietet oft weder SSH-Zugang noch einen offenen Datenbank-Port: Die Datenbank nimmt Verbindungen nur vom Webserver selbst an. Der HTTP-Tunnel bringt Sie trotzdem hin: Sie laden ein kleines PHP-Skript hoch, das NabuSQL erzeugt, und NabuSQL schickt die Arbeit an dieses Skript, das sie auf dem Server ausführt.

Der Tunnel steht für MariaDB-Verbindungen zur Verfügung. Der Webserver braucht PHP 7.4 oder neuer (empfohlen: PHP 8.x) mit den Erweiterungen mysqli und openssl, die praktisch jedes Hosting mitbringt.

Zuerst Remote MySQL versuchen

Wenn Ihr Hosting erlaubt, Ihre IP-Adresse in cPanel unter Remote MySQL freizugeben, ist eine direkte Verbindung einfacher und schneller. Nutzen Sie den Tunnel, wenn das nicht geht oder Port 3306 trotzdem geschlossen bleibt.

So funktioniert es und warum es sicher ist ​

  • Ein Skript pro Verbindung. Beim Herunterladen erzeugt NabuSQL einen zufälligen 256-Bit- Schlüssel und schreibt ihn in die Datei. Derselbe Schlüssel wird mit der Verbindung gespeichert, verschlüsselt wie Ihre Passwörter.
  • Alles ist verschlüsselt. Jede Anfrage und jede Antwort — Benutzername und Passwort der Datenbank, Ihre Abfragen, die Ergebnisse — wird mit diesem Schlüssel per AES-256-GCM verschlüsselt. Verwenden Sie trotzdem eine https://-Adresse; sie verbirgt auch, mit welchem Skript Sie sprechen.
  • Ohne Schlüssel kein Zugang. Eine Anfrage, die nicht mit dem richtigen Schlüssel verschlüsselt ist, erhält ein schlichtes 404 Not Found — das Skript ist nicht einmal von einer fehlenden Seite zu unterscheiden. Eine mitgeschnittene Anfrage lässt sich später nicht wiederholen.
  • Das Skript speichert keine Daten. Es enthält nur den Schlüssel. Das Datenbankpasswort reist jedes Mal in der verschlüsselten Anfrage mit und wird nie auf den Server geschrieben.
  • Nichts läuft über uns. NabuSQL spricht direkt mit dem Skript auf Ihrem Server.

Einrichtung ​

  1. Legen Sie eine neue Verbindung an und wählen Sie MariaDB.
  2. Geben Sie im Tab Grundeinstellungen die Datenbank so an, wie das Skript sie auf dem Server sieht:
    • Host: localhost
    • Port: 3306
    • Benutzer, Passwort und Datenbank: die vollständigen Namen aus cPanel mit dem Konto-Präfix (zum Beispiel meinkonto_app und meinkonto_db).
  3. Öffnen Sie den Tab HTTP-Tunnel und aktivieren Sie HTTP-Tunnel verwenden. Ab jetzt läuft diese Verbindung ausschließlich über den Tunnel; der SSH-Tunnel wird abgeschaltet.
  4. Setzen Sie bei Bedarf die PHP-Limits.
  5. Klicken Sie auf PHP-Skript herunterladen und speichern Sie die Datei (nabu_xxxxxxxx.php).
  6. Laden Sie die Datei mit dem Dateimanager des Hostings oder per FTP auf den Webserver, zum Beispiel nach public_html.
  7. Tragen Sie unter Skript-URL die Adresse des Skripts ein, zum Beispiel https://beispiel.de/nabu_xxxxxxxx.php.
  8. Klicken Sie auf Skript prüfen. Angezeigt werden die PHP-Version, ob mysqli und openssl vorhanden sind, und die Limits des Hostings.
  9. Klicken Sie auf Verbindung testen und dann auf Speichern.

Im Browser zeigt das Skript „Not Found"

Das ist so gewollt. Ohne Schlüssel beantwortet das Skript jede Anfrage mit 404.

PHP-Limits ​

Zwei PHP-Einstellungen lassen sich aus dem Skript heraus erhöhen. Lassen Sie sie leer, um die Vorgaben des Hostings zu behalten.

EinstellungBedeutung
max_execution_timeSekunden, die eine Anfrage laufen darf. 0 hebt das PHP-Limit auf
memory_limitSpeicher, den eine Anfrage nutzen darf, zum Beispiel 256M. -1 hebt das Limit auf

Manche Hostings erlauben keine höheren Werte. Skript prüfen zeigt immer die tatsächlich gültigen Werte und warnt, wenn das Hosting die gewünschten abgelehnt hat. Auch ohne PHP-Limit beendet der Webserver eine Anfrage nach einigen Minuten — „unbegrenzt" ist also nie wirklich unbegrenzt.

post_max_size (die größte Anfrage, die der Server annimmt) lässt sich nicht aus einem Skript setzen. Ändern Sie es bei Bedarf in cPanel unter MultiPHP INI Editor. NabuSQL liest den Wert und passt die Größe seiner Anfragen daran an.

Nach einer Änderung der Limits laden Sie das Skript erneut herunter und ersetzen die Datei auf dem Server.

Was über den Tunnel funktioniert ​

Fast alles, was Sie mit einer direkten Verbindung tun:

  • Durchsuchen von Datenbanken, Tabellen, Views, Routinen, Triggern und Sequenzen;
  • das Datenraster mit Filtern, Sortieren und Bearbeiten, BLOB-Viewer und Spaltenstatistik;
  • der SQL-Editor, EXPLAIN und der Abfrage-Profiler;
  • der Struktureditor (Spalten, Indizes, Schlüssel, Trigger);
  • Backup, Wiederherstellung, SQL-Datei ausführen, Dump in SQL-Datei und Stichproben-Dump;
  • Export und Import (CSV, Excel und andere);
  • Data Transfer — von und zu einer Tunnel-Verbindung sowie zwischen zwei Tunnel-Verbindungen;
  • Struktur- und Datenvergleich, Datensuche, Wartung (CHECK, OPTIMIZE, REPAIR, ANALYZE);
  • Datenbankeigenschaften, Umbenennen von Datenbanken und Tabellen, Zeilenhistorie, Prozessliste.

Über den Tunnel nicht verfügbar:

  • Benutzer- und Rechteverwaltung — beim Shared Hosting geschieht das in cPanel;
  • Task Scheduler und Datenbank aus XML/JSON erstellen;
  • Abbrechen einer laufenden Abfrage;
  • die Option Transaktion in SQL-Datei ausführen und Data Transfer: Jede Tunnel-Anfrage ist eine eigene Datenbanksitzung, eine Transaktion kann also nicht mehrere umfassen. Die Anweisungen laufen in Paketen, jedes wird bestätigt, sobald es fertig ist.

Was nicht verfügbar ist, ist in den Menüs ausgegraut.

Große Ergebnisse ​

Eine Anfrage darf nur so viel Speicher und Zeit verwenden, wie das Hosting erlaubt — NabuSQL verlangt daher nie mehr, als hineinpasst:

  • das Datenraster lädt wie immer Seite für Seite;
  • eine Abfrage im SQL-Editor mit sehr großem Ergebnis wird an einer sicheren Stelle abgeschnitten, neben der Zeilenzahl steht dann Ergebnis abgeschnitten — ergänzen Sie ein LIMIT oder ein engeres WHERE;
  • Backup, Export und Data Transfer lesen große Tabellen in kleineren Seiten. Eine Seite, die nicht passt, wird mit halber Größe erneut gelesen; ein Backup ist nie stillschweigend unvollständig;
  • Wiederherstellung und Import senden Anweisungen in Paketen, die auf post_max_size und memory_limit des Hostings zugeschnitten sind.

Das Skript aktualisieren ​

Neue NabuSQL-Versionen brauchen manchmal ein neueres Skript. Dann erscheint die Meldung, dass das Skript auf dem Server veraltet ist (The tunnel script on the server is outdated). Klicken Sie erneut auf PHP-Skript herunterladen — der Schlüssel bleibt gleich — und ersetzen Sie die Datei auf dem Server.

Fehlerbehebung ​

MeldungWas tun
Endpoint returned 404 bei Skript prüfenFalsche Adresse, oder die Datei auf dem Server gehört zu einer anderen Verbindung. URL prüfen, dann das Skript erneut herunterladen und die Datei ersetzen.
Access denied for user …Benutzername, Passwort oder Datenbank im Tab Grundeinstellungen. Verwenden Sie die vollständigen cPanel-Namen mit Präfix; der Host bleibt localhost.
Access denied … to database 'information_schema'Als Ziel wurde eine Systemdatenbank gewählt. Wählen Sie Ihre eigene Datenbank.
Allowed memory size … exhaustedDas memory_limit des Hostings ist für diesen Vorgang zu klein. Erhöhen Sie es in den PHP-Limits oder in cPanel.
HTTP 500Das Skript ist auf dem Server abgestürzt, meist wegen Speicher oder Zeit. Details stehen im Fehlerprotokoll des Hostings.
HTTP 403Eine Firewall des Hostings (zum Beispiel ModSecurity) hat die Anfrage blockiert. Bitten Sie das Hosting, die Adresse des Skripts freizugeben.
Das Skript ist veraltetSiehe Das Skript aktualisieren.
Not available over the HTTP tunnel yetDie Funktion wird über den Tunnel nicht unterstützt — siehe die Liste.
Umbenennen oder Anlegen einer Datenbank schlägt fehlUnter cPanel darf der Datenbankbenutzer meist keine Datenbanken anlegen. Legen Sie sie in cPanel an.

Wenn Sie den Tunnel nicht mehr nutzen, löschen Sie das Skript vom Server.