Verbindungsprobleme beheben

Private Service Connect-Fehler beheben

Verbindung zur Zieldatenbank nicht möglich: EOF

Beim Ausführen eines Konnektivitätstests wird die Fehlermeldung [DATABASE] unable to connect to the destination database: EOF zurückgegeben.

Mögliche Ursache:Der Dienst-Anhang ist falsch konfiguriert.

Mögliche Schritte:Achten Sie darauf, dass enable_proxy_protocol in der Terraform-Konfigurationsdatei für die Dienstanhänge auf false festgelegt ist. Das Proxyprotokoll wird nur für HTTP-Server wie NGINX und Apache unterstützt.

Wenn Sie gcloud zum Erstellen der Private Service Connect-Einrichtung verwenden, ist das Proxyprotokoll standardmäßig deaktiviert.

Zeitüberschreitung bei der Verbindung, Verbindung abgelehnt

Der Konnektivitätstest schlägt fehl oder es tritt eine Zeitüberschreitung auf. Dies ist höchstwahrscheinlich auf ein falsch konfiguriertes Routing innerhalb der Private Service Connect-Einrichtung zurückzuführen. Dafür kann es verschiedene Gründe geben.

Mögliche Ursache:Es fehlt eine Firewallregel, die dem Private Service Connect-NAT-CIDR-Bereich den Zugriff auf das Private Service Connect-Subnetz, in dem sich die Bastion befindet, insbesondere auf die Bastion-VM-nic0-Schnittstelle, erlaubt.

Versuche:Achte darauf, dass deine Organisationsrichtlinien interne Firewallregeln nicht einschränken, z. B. die Firewallregel psc_sp_in_fw, die im Beispiel-Terraform-Script für die Einrichtung des Private Service Connect-Produzenten definiert ist.

Mögliche Ursache:Der Proxy ist ausgefallen. Es gibt keinen Listener für den angegebenen Port und daher hängt die Verbindung.

Versuche:Sie können versuchen, eine SSH-Verbindung zur Bastion-VM herzustellen und mit dem folgenden Befehl nach dem Proxy suchen:

  • netstat -tunalp | grep PORT

Analysieren Sie die Antworten auf den Befehl:

  • Wenn Sie eine leere Antwort erhalten, ist der Proxy nicht verfügbar. Führen Sie dazu den folgenden Befehl aus:

    sudo su; cd / und prüfen Sie, ob der Dante-Server installiert ist, indem Sie sudo dpkg -s dante-server ausführen:

    • Wenn der Proxy installiert ist, wird die folgende Meldung angezeigt:

      Status: install ok installed

    • Wenn der Proxy nicht installiert ist, liegt wahrscheinlich ein fehlender Router vor. Fügen Sie einen Router hinzu und prüfen Sie, ob Sie den Proxy herunterladen können, indem Sie apt-get install dante-server ausführen.

  • Wenn der Proxy ausgeführt wird und den angegebenen Port überwacht, versuchen Sie, eine Verbindung zu ihm herzustellen. Gehen Sie dazu so vor:

    1. Installieren Sie den PostgreSQL-Client:

      sudo apt-get install postgresql-client.

    2. Stellen Sie eine Verbindung zur PostgreSQL-Datenbank her:

      psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W (Sie werden aufgefordert, das Passwort einzugeben).

      Ersetzen Sie Folgendes:

      • PORT: die Datenbankportnummer.
      • DBUSERNAME: Der Nutzername, der für die Verbindung zur PostgreSQL-Datenbank verwendet wird.
    3. Installieren Sie den Telnet-Client:

      sudo apt-get install telnet

    4. Stellen Sie eine Verbindung zum Telnet-Client her:

      telnet 127.0.0.1 PORT

      Ersetzen Sie PORT durch die Datenbank-Portnummer.

    Je nach Ergebnis der Befehle:

    • Wenn mit den Befehlen keine Verbindung hergestellt werden kann, sehen Sie sich die Proxy-Logs an, um die Ursache zu ermitteln. Die Ursache kann je nach AlloyDB for PostgreSQL-Clusterkonfiguration variieren.

    • Wenn die Verbindung über Telnet geöffnet wird, aber im nativen Client hängt, liegt das Problem wahrscheinlich am Routing der Bastion-IP-Adresse. Geben Sie auf Ihrer VM ip route in das Terminal ein. Suchen Sie nach einer Routingregel, die Verbindungen über die sekundäre nic (nic1, die DB_SUBNETWORK_GATEWAY-IP-Adresse) an die private IP-Adresse des AlloyDB for PostgreSQL-Clusters weiterleitet.

Mögliche Ursache:Der Dienstanhang akzeptiert die Endpunktverbindung, die vom Database Migration Service stammt, nicht. Der Dienstanhang enthält eine Liste der akzeptierten Projekte. Das Projekt „Database Migration Service“ ist nicht in der Liste enthalten.

Mögliche Schritte:Versuchen Sie Folgendes, um das Problem zu beheben:

  • Rufen Sie in der Google Cloud Console Private Service Connect auf.

    Zu Private Service Connect

    Akzeptieren Sie auf dem Tab Veröffentlichte Dienste die Verbindung von Database Migration Service für Ihren Dienst-Anhang, falls sie ausstehend ist.

  • Fügen Sie das anfragende Projekt der Zulassungsliste der Projekte im Dienstanhang hinzu, falls es abgelehnt wurde.

    • Weitere Informationen zum Hinzufügen eines Projekts auf die Zulassungsliste in Terraform finden Sie in der Terraform-Dokumentation.

    • Weitere Informationen zum Hinzufügen eines Projekts auf die Zulassungsliste in gcloud finden Sie in der Referenzdokumentation zu gcloud.

    Wenn das Problem dadurch nicht behoben wird, erstellen Sie das Verbindungsprofil neu.

  • Löschen Sie das Verbindungsprofil, das mit der Private Service Connect-Verbindung verknüpft ist, und erstellen Sie es neu.