MariaDB-Datenbanken über SSH-Tunnel sichern und wiederherstellen

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
5 min

Musst du eine MariaDB-Datenbank auf Sliplane sichern? Diese Anleitung zeigt dir, wie du Sicherungen sicher über einen SSH-Tunnel erstellen und wiederherstellen kannst. Diese Methode hält deine Datenbank privat, während du vollen Zugriff hast, ohne sie öffentlich verfügbar zu machen.

Was du lernen wirst

In dieser Anleitung lernst du:

  • Einen SSH-Tunnel-Service in Sliplane einzurichten
  • Sicherungen mit mysqldump über den Tunnel zu erstellen
  • Datenbanken mit mysql wiederherzustellen
  • Mit verschiedenen Backup-Formaten und Wiederherstellungsoptionen umzugehen

Hinweis: Wenn deine Datenbank bereits öffentlich ist und deine IP auf der Whitelist steht, kannst du dich direkt ohne SSH-Tunnel verbinden.

Voraussetzungen

Stelle vor dem Start sicher, dass du hast:

  • MariaDB-Client-Tools installiert: mysqldump, mysql
  • Deine Sliplane MariaDB-Datenbank-Anmeldedaten
  • Ein Sliplane-Projekt mit einem laufenden MariaDB-Service

Schritt 1: SSH-Tunnel-Service erstellen

Erstelle zuerst einen dedizierten SSH-Tunnel-Service in deinem Sliplane-Projekt:

  1. Gehe in deinem Sliplane-Dashboard zu deinem Projekt
  2. Klicke auf Add ServicePresetsSSH Tunnel
  3. Verwende diese Einstellungen:
    • Image: ghcr.io/sliplane/docker-ssh:latest
    • Environment Variables:
      • HOST=0.0.0.0
      • PORT=2222
      • ROOT_PASSWORD=wähle ein starkes Passwort
  4. Stelle den Service bereit und notiere seine öffentliche Domain (z.B. ssh-tunnel-123.sliplane.app)

Schritt 2: SSH-Tunnel herstellen

Öffne ein Terminal und erstelle einen lokalen Tunnel zu deiner Sliplane-Datenbank:

ssh -p 2222 \
  [email protected] \
  -L 3306:mariadb-service-name.internal:3306 \
  -N

Ersetze mariadb-service-name.internal mit dem internen Hostnamen deines MariaDB-Service. Halte dieses Terminalfenster während des Sicherungs-/Wiederherstellungsprozesses geöffnet.

Schritt 3: Verbindung testen

Überprüfe, ob der Tunnel funktioniert, bevor du Sicherungen erstellst:

mysql -h 127.0.0.1 -P 3306 -u dein-benutzer -p'dein-passwort' \
-e 'SELECT version();'

Wenn du die MariaDB-Version siehst, funktioniert dein Tunnel korrekt.

Schritt 4: Sicherung erstellen

Da dein SSH-Tunnel funktioniert, ist es Zeit, eine Sicherung zu erstellen. MariaDB bietet mehrere Backup-Optionen über mysqldump, jede mit unterschiedlichen Anwendungsfällen und Vorteilen.

Vollständige Datenbanksicherung (Empfohlen)

Dieses Format erstellt eine vollständige SQL-Sicherung deiner Datenbank:

mysqldump -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  --single-transaction \
  --routines \
  --triggers \
  --all-databases \
  > backup-$(date +%F).sql

Bestimmte Datenbanksicherung

Sichere nur eine bestimmte Datenbank:

mysqldump -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  --single-transaction \
  --routines \
  --triggers \
  deine-datenbank \
  > backup-$(date +%F).sql

Komprimierte Sicherung

Erstelle eine komprimierte Sicherung:

mysqldump -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  --single-transaction \
  --routines \
  --triggers \
  deine-datenbank \
  | gzip > backup-$(date +%F).sql.gz

Bestimmte Tabellen sichern

Sichere nur bestimmte Tabellen:

mysqldump -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  deine-datenbank \
  tabelle1 tabelle2 \
  > backup-$(date +%F).sql

Schritt 5: Wiederherstellen der Sicherung

Mit deiner Sicherungsdatei kannst du diese jetzt in deiner MariaDB-Datenbank wiederherstellen. Der Wiederherstellungsprozess hängt von deinem Backup-Format ab und davon, ob du in eine bestehende Datenbank wiederherstellst oder eine neue erstellst.

Vollständige Datenbank wiederherstellen

Aus SQL-Datei:

mysql -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  < backup-YYYY-MM-DD.sql

Komprimierte Sicherung wiederherstellen

Aus gezippter Datei:

gunzip < backup-YYYY-MM-DD.sql.gz | \
mysql -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort'

Wiederherstellen zu bestimmter Datenbank

mysql -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  zieldatenbank \
  < backup-YYYY-MM-DD.sql

Datenbank während der Wiederherstellung erstellen

mysql -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  -e "CREATE DATABASE IF NOT EXISTS zieldatenbank;"

mysql -h 127.0.0.1 -P 3306 \
  -u dein-benutzer -p'dein-passwort' \
  zieldatenbank \
  < backup-YYYY-MM-DD.sql

Diese Methode gibt dir sicheren, zuverlässigen Zugriff auf deine MariaDB-Datenbank auf Sliplane für Sicherungen und Wiederherstellungen, während deine Infrastruktur sicher bleibt.

Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!