From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | Matthias Apitz <guru(at)unixarea(dot)de> |
Cc: | "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: psql's default database on connect (our internal ref. SRP-30861) |
Date: | 2021-08-06 07:34:42 |
Message-ID: | CAECtzeWCnDg9NUpx0j111vS6Z3T=8n9czekPPe3Pn-nUsukDRg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Le ven. 6 août 2021 à 09:25, Matthias Apitz <guru(at)unixarea(dot)de> a écrit :
> El día viernes, agosto 06, 2021 a las 09:07:56a. m. +0200, Guillaume
> Lelarge escribió:
>
> > Le ven. 6 août 2021 à 08:53, Matthias Apitz <guru(at)unixarea(dot)de> a écrit :
> >
> > >
> > > Hello,
> > >
> > > testpos(at)srap53dxr1:~> psql --help
> > > ...
> > > -d, --dbname=DBNAME database name to connect to (default:
> "testpos")
> > >
> > > testpos(at)srap53dxr1:~> whoami
> > > testpos
> > >
> > > testpos(at)srap53dxr1:~> env | grep PG
> > > PGPASSWORD=xxxxxxxx
> > > PGHOST=localhost
> > > PGPORT=5432
> > >
> > > testpos(at)srap53dxr1:~> LANG=C psql -Usisis
> > > psql (13.3)
> > > Type "help" for help.
> > >
> > > sisis=# \l
> > > List of databases
> > > Name | Owner | Encoding | Collate | Ctype | Access
> > > privileges
> > >
> > >
> -----------+----------+----------+-------------+-------------+-----------------------
> > > postgres | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 |
> > > sisis | sisis | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 |
> > > ...
> > >
> > > Why psql connects to the database 'sisis'? I was expecting that it
> > > will try to connect to a database 'testpos' as this is the UNIX login
> > > and as '-d....' was not specified. I was expecting in this case an
> > > error like this:
> > >
> > > testpos(at)srap53dxr1:~> export PGDATABASE=testpos
> > > testpos(at)srap53dxr1:~> psql -Usisis
> > > psql: error: FATAL: database »testpos« does not exist
> > >
> > > What do I uderstand wrong?
> > >
> >
> > When you try to connect without specifying a database name on the command
> > line, psql will check PGDATABASE. If unset, it will use the PostgreSQL
> user
> > name also as the database name. If you don't specify explicitly the
> > PostgreSQL username, it will check PGUSER and, if unset, will use the OS
> > username.
> >
> > That matches all your examples above.
>
> No, it does not match all my examples. Read again what it says as
> default on --help.
>
Actually, it does. You launched "psql --help" without specifying a
PostgreSQL username and database name, so it used your OS username as both
of them, hence the "default: testpos" for the database.
From | Date | Subject | |
---|---|---|---|
Next Message | Matthias Apitz | 2021-08-06 07:51:55 | Re: psql's default database on connect (our internal ref. SRP-30861) |
Previous Message | Matthias Apitz | 2021-08-06 07:25:29 | Re: psql's default database on connect (our internal ref. SRP-30861) |