Trying to make use of the official postgres docker image with:
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
However, when creating postgres connection with 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)
}
I always ended up with
panic: pq: password authentication failed for user "postgres"
and I have no any other ways to verify mysuperduperlongpwstring
:
psql -U postgres -d postgres --password
, and give anything as password would work just fine.ERROR: must be superuser to alter replication roles or change replication attribute
I.e., basically the answers from the following are not working for me any more:
Lacking of any resources, I've changed mysuperduperlongpwstring
several times when starting docker, and change my Go PW accordingly, but every time I ended up with the same failure.
How to troubleshoot where the problem is please? How to reset the PASSWORD with the official postgres docker?
In a docker container set up the say you show and starting from an empty volume, 'postgres' would be a superuser, and so you would not get the error about it needing to be a superuser.
The only plausible explanations I see for that part is either you didn't run psql where you thought you did, or you didn't start with an empty volume and so your docker run
command just started up an existing database and thus your "-e POSTGRES*" configurations were all ignored. So one way or another, you are either not connecting to what you think you are, or it is not configured the way you think it is.