Thread: Re: FATAL: database "xxx" does not exist when it does

Re: FATAL: database "xxx" does not exist when it does

From
Siddharth Jain
Date:


using Postgres 14.4, I created a database as the postgres user:

create database xxx;

postgres=> \c xxx
psql (13.9 (Debian 13.9-0+deb11u1), server 14.4)
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
You are now connected to database "xxx" as user "postgres".

i gave all privileges on xxx to user sysbench:

postgres=> GRANT ALL PRIVILEGES ON DATABASE xxx TO sysbench;

i can see:

Name     |      Owner       | Encoding | Collate |  Ctype  |           Access privileges
--------------+------------------+----------+---------+---------+---------------------------------------
 xxx         | postgres         | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres                         +
              |                  |          |         |         | postgres=CTc/postgres                +
              |                  |          |         |         | sysbench=CTc/postgres

but user sysbench is not able to connect to this database:

sysbench=> \c xxx
FATAL:  database "xxx" does not exist
Previous connection kept

how can i fix this?

Re: FATAL: database "xxx" does not exist when it does

From
Rodrigo Luna
Date:
Even on the create role you set login?

Rodrigo Dev
Visite: https://rodrigoluna.net.br
YouTube: GamesBR

Em 1 de fev. de 2023, à(s) 17:13, Siddharth Jain <siddhsql@gmail.com> escreveu:




using Postgres 14.4, I created a database as the postgres user:

create database xxx;

postgres=> \c xxx
psql (13.9 (Debian 13.9-0+deb11u1), server 14.4)
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
You are now connected to database "xxx" as user "postgres".

i gave all privileges on xxx to user sysbench:

postgres=> GRANT ALL PRIVILEGES ON DATABASE xxx TO sysbench;

i can see:

Name     |      Owner       | Encoding | Collate |  Ctype  |           Access privileges
--------------+------------------+----------+---------+---------+---------------------------------------
 xxx         | postgres         | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres                         +
              |                  |          |         |         | postgres=CTc/postgres                +
              |                  |          |         |         | sysbench=CTc/postgres

but user sysbench is not able to connect to this database:

sysbench=> \c xxx
FATAL:  database "xxx" does not exist
Previous connection kept

how can i fix this?

Re: FATAL: database "xxx" does not exist when it does

From
Rodrigo Luna
Date:
Change the owner to xxx too.

Rodrigo Dev
Visite: https://rodrigoluna.net.br
YouTube: GamesBR

Em 1 de fev. de 2023, à(s) 17:15, Rodrigo Luna <rodrigomrluna78@gmail.com> escreveu:

Even on the create role you set login?

Rodrigo Dev
Visite: https://rodrigoluna.net.br
YouTube: GamesBR

Em 1 de fev. de 2023, à(s) 17:13, Siddharth Jain <siddhsql@gmail.com> escreveu:




using Postgres 14.4, I created a database as the postgres user:

create database xxx;

postgres=> \c xxx
psql (13.9 (Debian 13.9-0+deb11u1), server 14.4)
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
You are now connected to database "xxx" as user "postgres".

i gave all privileges on xxx to user sysbench:

postgres=> GRANT ALL PRIVILEGES ON DATABASE xxx TO sysbench;

i can see:

Name     |      Owner       | Encoding | Collate |  Ctype  |           Access privileges
--------------+------------------+----------+---------+---------+---------------------------------------
 xxx         | postgres         | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres                         +
              |                  |          |         |         | postgres=CTc/postgres                +
              |                  |          |         |         | sysbench=CTc/postgres

but user sysbench is not able to connect to this database:

sysbench=> \c xxx
FATAL:  database "xxx" does not exist
Previous connection kept

how can i fix this?

Re: FATAL: database "xxx" does not exist when it does

From
Tom Lane
Date:
Siddharth Jain <siddhsql@gmail.com> writes:
> postgres=> \c xxx
> psql (13.9 (Debian 13.9-0+deb11u1), server 14.4)
> WARNING: psql major version 13, server major version 14.
> Some psql features might not work.

I wonder whether your problem is related to this version mismatch.
I'm not entirely sure how that would happen, but older psql with
newer server is certainly not a heavily-tested case.

> i gave all privileges on xxx to user sysbench:
> postgres=> GRANT ALL PRIVILEGES ON DATABASE xxx TO sysbench;

[ squint... ]  Your prompt indicates you are not superuser here.
Is this really an accurate transcript of what you did?

> sysbench=> \c xxx
> FATAL:  database "xxx" does not exist
> Previous connection kept

If I had to guess on the basis of this much info, I'd guess that
there's more than one Postgres cluster on this machine, one of
which now has an "xxx" database while another does not, and
psql is somehow trying to connect to the latter one at this point.

Possibly this has to do with the version mismatch; I'm not very
sure offhand whether \c will preserve prior values for options
like port number in this context.  Especially if you are using
version-mismatched psql and libpq, which seems moderately likely.

            regards, tom lane