Wann Sie Fernzugriff brauchen

Mit dem Fernzugriff erreichen Sie Ihre MySQL-Datenbank aus:

  • einer lokalen Entwicklungsumgebung (XAMPP, MAMP, Docker)
  • Desktop-Datenbankwerkzeugen (MySQL Workbench, DBeaver, Sequel Pro)
  • anderen Servern oder Cloud-Anwendungen
  • automatisierten Skripten und Backup-Werkzeugen
Sicherheitshinweis: Der MySQL-Fernzugriff öffnet ein mögliches Sicherheitsrisiko. Aktivieren Sie ihn nur, wenn Sie ihn wirklich brauchen, und verwenden Sie immer starke Passwörter.

Fernzugriff aktivieren

Schritt 1: Remote-Host eintragen

  1. Melden Sie sich bei EGPNL an
  2. Öffnen Sie DatabasesRemote MySQL
  3. Tragen Sie Ihre IP-Adresse oder Ihren Hostnamen ein
  4. Klicken Sie auf Add Host
Ihre IP finden: Rufen Sie whatismyipaddress.com auf, um Ihre aktuelle öffentliche IP zu sehen.

Schritt 2: Datenbank-Benutzer einrichten

Stellen Sie sicher, dass Ihr Datenbank-Benutzer die richtigen Rechte hat:

  1. Öffnen Sie MySQL Databases
  2. Prüfen Sie, ob Ihr Benutzer All Privileges besitzt
  3. Oder legen Sie einen eigenen Benutzer für den Fernzugriff an

Verbindungseinstellungen

Einstellung Wert
Hostname Die IP Ihres Servers oder yourdomain.com
Port 3306 (Standardport von MySQL)
Datenbank your_database_name
Benutzername your_database_user
Passwort your_database_password

Verbinden mit MySQL Workbench

  1. Öffnen Sie MySQL Workbench
  2. Klicken Sie auf +, um eine neue Verbindung anzulegen
  3. Vergeben Sie einen Namen für die Verbindung
  4. Tragen Sie unter Hostname die Adresse Ihres Servers ein
  5. Setzen Sie Port auf 3306
  6. Geben Sie den Benutzernamen ein
  7. Klicken Sie für das Passwort auf Store in Vault
  8. Klicken Sie auf Test Connection
  9. Klicken Sie auf OK, um zu speichern

Verbinden über die Kommandozeile

# Basic connection
mysql -h your-server.com -P 3306 -u username -p database_name

# Example
mysql -h server.egphp.com -P 3306 -u mysite_user -p mysite_db

Verbinden aus PHP heraus (entfernte Anwendung)

<?php
$host = 'your-server.com';  // Remote server hostname
$port = 3306;
$database = 'your_database';
$username = 'your_user';
$password = 'your_password';

// PDO Connection
try {
    $pdo = new PDO(
        "mysql:host=$host;port=$port;dbname=$database;charset=utf8mb4",
        $username,
        $password,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    echo "Connected successfully!";
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

Alle Hosts erlauben (Wildcard)

So erlauben Sie Verbindungen von jeder beliebigen IP-Adresse:

  1. Öffnen Sie Remote MySQL in EGPNL
  2. Tragen Sie % als Host ein
  3. Klicken Sie auf Add Host
Nicht empfohlen: Alle Hosts zu erlauben (%) ist ein Sicherheitsrisiko. Nutzen Sie es nur zum Testen und entfernen Sie den Eintrag danach wieder. Verwenden Sie wann immer möglich konkrete IP-Adressen.

SSH-Tunnel (die sicherste Variante)

Für maximale Sicherheit verbinden Sie sich über einen SSH-Tunnel:

SSH-Tunnel über die Kommandozeile

# Create tunnel
ssh -L 3307:localhost:3306 user@your-server.com

# In another terminal, connect via tunnel
mysql -h 127.0.0.1 -P 3307 -u dbuser -p database_name

SSH-Tunnel in MySQL Workbench

  1. Legen Sie eine neue Verbindung an
  2. Setzen Sie die Verbindungsmethode auf Standard TCP/IP over SSH
  3. SSH-Hostname: your-server.com
  4. SSH-Benutzername: Ihr SSH-Benutzer
  5. SSH-Schlüsseldatei: Ihr privater Schlüssel (optional)
  6. MySQL-Hostname: localhost (oder 127.0.0.1)
  7. Geben Sie die Zugangsdaten der Datenbank ein
Warum ein SSH-Tunnel? SSH-Tunnel verschlüsseln den gesamten Datenverkehr, und der MySQL-Port 3306 muss nicht zum Internet hin geöffnet werden.

Fehlerbehebung

Verbindung abgelehnt (Connection Refused)

  • Prüfen Sie, ob Ihre IP in Remote MySQL eingetragen ist
  • Prüfen Sie, ob sich Ihre IP geändert hat (dynamische IP)
  • Vergewissern Sie sich, dass Port 3306 in Ihrer Firewall offen ist

Zugriff verweigert (Access Denied)

  • Prüfen Sie Benutzername und Passwort
  • Prüfen Sie, ob der Benutzer Rechte für den Fernzugriff hat
  • Stellen Sie sicher, dass der Datenbankname stimmt

Zeitüberschreitungen

  • Prüfen Sie, ob Netzwerk oder Firewall Port 3306 blockieren
  • Versuchen Sie es stattdessen mit einem SSH-Tunnel
  • Prüfen Sie, ob der Server Verbindungen annimmt

Fernzugriff wieder entfernen

Wenn Sie den Fernzugriff nicht mehr brauchen:

  1. Öffnen Sie Remote MySQL in EGPNL
  2. Suchen Sie den Eintrag für die IP bzw. den Host
  3. Klicken Sie auf Delete