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