Heim > Backend-Entwicklung > Golang > Wie verwende ich ein Passwort mit dem offiziellen Postgres-Docker-Image?

Wie verwende ich ein Passwort mit dem offiziellen Postgres-Docker-Image?

WBOY
Freigeben: 2024-02-05 21:45:12
nach vorne
1285 Leute haben es durchsucht

如何将密码与官方 postgres docker 镜像一起使用?

Frageninhalt

Versuchen Sie, das offizielle Postgres-Docker-Image zu verwenden:

docker run --rm -d \
        --name my-postgres \
        --network my-network \
        -e POSTGRES_USER=postgres \
        -e POSTGRES_PASSWORD=mysuperduperlongpwstring \
        -e POSTGRES_DB=postgres \
        -v /path/to/postgres/data/:/var/lib/postgresql/data
        postgres
Nach dem Login kopieren

Beim Erstellen einer Postgres-Verbindung mit Go,

        psqlInfo := fmt.Sprintf(
                "host=%s port=%s user=%s password=%s dbname=%s sslmode=%s",
                os.Getenv("DB_HOST"),
                os.Getenv("DB_PORT"),
                os.Getenv("DB_USER"),
                os.Getenv("DB_PASSWORD"),
                os.Getenv("DB_NAME"),
                os.Getenv("DB_SSL_MODE"),
        )
        db, err := sql.Open("postgres", psqlInfo)
        if err != nil {
                panic(err)
        }
Nach dem Login kopieren

Ich beende immer mit

panic: pq: 用户“postgres”的密码验证失败

Ich habe keine andere Möglichkeit, dies zu überprüfen mysuperduperlongpwstring:

  • Versuchen Sie, psql -U postgres -d postgres --password zu verwenden, um vom Docker-Container aus eine Verbindung zur Datenbank herzustellen, und geben Sie alles an, da das Passwort ausreicht.
  • Wenn Sie versuchen, das Passwort im Docker-Container zu ändern, erhalten Sie

错误:必须是超级用户才能更改复制角色或更改复制属性

Das heißt, im Grunde funktionieren die folgenden Antworten für mich nicht mehr:

  • So ändern Sie das Postgresql-Docker-Image-Passwort
  • Wie ändere ich das PostgreSQL-Benutzerpasswort?

Aufgrund fehlender Ressourcen habe ich mysuperduperlongpwstring beim Starten von Docker mehrmals geändert und mein Go-PW entsprechend geändert, am Ende kam es jedoch jedes Mal zum gleichen Fehler.

Was ist das Problem und wie kann man es beheben? Wie setze ich das Passwort mit dem offiziellen Postgres-Docker zurück?


Richtige Antwort


Legen Sie im Docker-Container fest, was Sie anzeigen möchten, und beginnen Sie mit einem leeren Volume. „postgres“ ist ein Superuser, sodass Sie keine Fehlermeldung erhalten, dass es ein Superuser sein muss.

Die einzig vernünftige Erklärung, die ich für diesen Teil sehe, ist, dass Sie psql entweder nicht dort ausführen, wo Sie denken, dass Sie sich befinden, oder dass Sie nicht mit einem leeren Volume beginnen, sodass Ihr docker run-Befehl einfach eine vorhandene Datenbank startet, daher Ihr „ - e POSTGRES*“-Konfigurationen werden alle ignoriert. So oder so ist die Verbindung entweder nicht so, wie Sie es sich vorgestellt haben, oder es ist nicht so konfiguriert, wie Sie es sich vorgestellt haben.

Das obige ist der detaillierte Inhalt vonWie verwende ich ein Passwort mit dem offiziellen Postgres-Docker-Image?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage