Maison > développement back-end > Golang > Comment utiliser le mot de passe avec l'image Docker officielle de Postgres ?

Comment utiliser le mot de passe avec l'image Docker officielle de Postgres ?

WBOY
Libérer: 2024-02-05 21:45:12
avant
1270 Les gens l'ont consulté

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

Contenu de la question

Essayez d'utiliser l'image officielle du docker postgres :

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
Copier après la connexion

Cependant, lors de la création d'une connexion postgres à l'aide de 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)
        }
Copier après la connexion

Je termine toujours par

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

Je n'ai aucun autre moyen de vérifier mysuperduperlongpwstring :

  • Essayez d'utiliser psql -U postgres -d postgres --password pour vous connecter à la base de données à partir du conteneur Docker et fournissez n'importe quoi car le mot de passe fera l'affaire.
  • Si vous essayez de changer le mot de passe depuis le conteneur Docker, vous obtiendrez

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

Cela dit, en gros, les réponses suivantes ne fonctionnent plus pour moi :

  • Comment changer le mot de passe de l'image Docker Postgresql
  • Comment changer le mot de passe utilisateur PostgreSQL ?

En raison du manque de ressources, j'ai changé mysuperduperlongpwstring plusieurs fois au démarrage de Docker et j'ai modifié mon Go PW en conséquence, mais je me suis retrouvé avec le même échec à chaque fois.

Quel est le problème et comment le résoudre ? Comment réinitialiser le mot de passe à l'aide du docker officiel de Postgres ?


Bonne réponse


Dans le conteneur Docker, définissez ce que vous affichez et commencez avec un volume vide, "postgres" sera superutilisateur afin que vous n'obteniez pas d'erreur indiquant qu'il doit être superutilisateur.

La seule explication raisonnable que je vois pour cette partie est que soit vous n'exécutez pas psql là où vous pensez être, soit vous ne démarrez pas avec un volume vide, donc votre commande docker run démarre simplement une base de données existante, d'où votre " - Les configurations POSTGRES*" sont toutes ignorées. Quoi qu'il en soit, soit vous n'êtes pas connecté comme vous le pensiez, soit il n'est pas configuré comme vous le pensiez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal