Le ven. 6 août 2021 à 09:25, Matthias Apitz <g...@unixarea.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 <g...@unixarea.de> a écrit : > > > > > > > > Hello, > > > > > > testpos@srap53dxr1:~> psql --help > > > ... > > > -d, --dbname=DBNAME database name to connect to (default: > "testpos") > > > > > > testpos@srap53dxr1:~> whoami > > > testpos > > > > > > testpos@srap53dxr1:~> env | grep PG > > > PGPASSWORD=xxxxxxxx > > > PGHOST=localhost > > > PGPORT=5432 > > > > > > testpos@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@srap53dxr1:~> export PGDATABASE=testpos > > > testpos@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.