Heim >Backend-Entwicklung >Golang >Wie verwende ich ein Passwort mit dem offiziellen Postgres-Docker-Image?
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
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) }
Ich beende immer mit
panic: pq: 用户“postgres”的密码验证失败
Ich habe keine andere Möglichkeit, dies zu überprüfen mysuperduperlongpwstring
:
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. 错误:必须是超级用户才能更改复制角色或更改复制属性
Das heißt, im Grunde funktionieren die folgenden Antworten für mich nicht mehr:
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?
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!