Heim > Backend-Entwicklung > Golang > Warum erhält meine Go-Anwendung beim Herstellen einer Verbindung zu einer Docker Compose Postgres-Datenbank die Fehlermeldung „Verbindung abgelehnt'?

Warum erhält meine Go-Anwendung beim Herstellen einer Verbindung zu einer Docker Compose Postgres-Datenbank die Fehlermeldung „Verbindung abgelehnt'?

Barbara Streisand
Freigeben: 2024-12-21 01:04:11
Original
150 Leute haben es durchsucht

Why Does My Go Application Get a

Docker Compose Postgres-Verbindungsverweigerung

Problem:

Beim Versuch, eine Datenbankverbindung herzustellen Beim Aufrufen einer Postgres-Datenbank, die auf Docker Compose ausgeführt wird, wird der Fehler „dial tcp“ angezeigt 127.0.0.1:5432: connect: Verbindung verweigert“ tritt auf.

Lösung:

Das Problem ist auf eine falsche Hostnamenreferenzierung in der Verbindungszeichenfolge zurückzuführen.

Referenzierung des Hostnamens:

Der Hostname der Datenbank lautet wird in der Umgebungsvariablen „POSTGRES_HOST“ als „postgres“ bezeichnet. Der Container-/Dienstname für die Datenbank in der Docker-Compose-Datei lautet jedoch „Datenbank“.

Lösung:

Um das Problem zu beheben, gibt es zwei Möglichkeiten :

  1. Ändern Sie den Container-/Dienstnamen: Ändern Sie in der Docker-Compose-Datei den „Datenbank“-Dienstname zu „postgres“.
  2. Einen expliziten Hostnamen hinzufügen: Fügen Sie ein „Hostname“-Feld zum „Datenbank“-Dienst in der Docker-Compose-Datei hinzu und legen Sie es explizit auf fest „postgres.“

Netzwerkkonfiguration (optional):

Für Verbesserungen Um die Isolierung und Kommunikation zwischen Diensten zu gewährleisten, wird empfohlen, ein dediziertes Netzwerk für Datenbank- und Anwendungscontainer einzurichten. Gehen Sie dazu wie folgt vor:

  1. Fügen Sie jedem Dienst, der das freigegebene Netzwerk verwenden soll, eine „Netzwerk“-Konfiguration hinzu.
  2. Definieren Sie das Netzwerk am Ende der Docker-Compose-Datei mit einem Namen und optionale Optionen.

Beispiel:

database:
  # ...

  networks:
    - mynet

backend:
  # ...

  networks:
    - mynet

networks:
  mynet:
    name: my-shared-db-network
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhält meine Go-Anwendung beim Herstellen einer Verbindung zu einer Docker Compose Postgres-Datenbank die Fehlermeldung „Verbindung abgelehnt'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage