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 Siesudo 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:
Installieren Sie den PostgreSQL-Client:
sudo apt-get install postgresql-client
.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.
Installieren Sie den Telnet-Client:
sudo apt-get install telnet
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ärenic
(nic1
, dieDB_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.
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.