I downloaded the docker container for postgres: https://hub.docker.com/r/library/postgres/, and did the following:
$ docker run --name satgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
satgres | "docker-entrypoint.s…" | 5 seconds ago | Up 6 seconds | 0.0.0.0:5432->5432/tcp | satgres
$ docker exec -it c8f1b22cc41e /bin/bash
# psql -U postgres
psql (10.1)
postgres=# CREATE DATABASE mytest;
postgres=# \password postgres
postgres=# CREATE ROLE ming WITH LOGIN PASSWORD 'pass1234';
postgres=# ALTER ROLE ming CREATEDB;
postgres=# CREATE DATABASE sjk;
postgres=# GRANT ALL PRIVILEGES ON DATABASE youtube TO ming;
postgres=# \connect sjk
youtube=# ALTER ROLE ming lOGIN;
My plan is to use this database on docker with Django, so first want to check I can connect, but I cant.
$ psql -h localhost -p 5432 -U postgres
$ psql: FATAL: role "postgres" does not exist
$ psql -h localhost -p 5432 -U ming
$ psql: FATAL: role "ming" does not exist
I do the same with PSequal.app, says the same thing, Im running on Mac High Sierra.
Why am I getting this error? The role exists, or at least it seems it to me...
In my case, the problem may be due also to the use of a super user who is not postgres. Lhe developers chose the user georchestra in the geOrchestra docker composition. Extract from the dockerfile:
consequently, you will have to use the option "-U georchestra" to connect to the container.
and of course, trying to connect with the user postgres causes an error:
The problem was simple enough that my computer was already running an instance of Postgres that I was not aware was still running (not inside Docker) on
:5432
, checked with:So I remembered I installed it via https://gist.github.com/sgnl/609557ebacd3378f3b72, I ran
And then I had no problem connecting to the Docker instance.