Thread: How to change the default database for a user
Hello, I've created a user and a database both wrongly named "phpbb". After that I have renamed both to "punbb" using "ALTER DATABASE" and "ALTER USER". Now everything works fine, except I always have to specify the database when connecting (both using psql or the PQconnectdb() from my C-program): h754814:afarber {103} psql -U punbb psql: FATAL: database "phpbb" does not exist h754814:afarber {104} psql -U punbb punbb Welcome to psql 8.1.0, the PostgreSQL interactive terminal. .... punbb-> \l List of databases Name | Owner | Encoding -----------+-------------+----------- postgres | _postgresql | SQL_ASCII punbb | _postgresql | SQL_ASCII template0 | _postgresql | SQL_ASCII template1 | _postgresql | SQL_ASCII (4 rows) punbb-> \du List of roles Role name | Superuser | Create role | Create DB | Connections | Member of -------------+-----------+-------------+-----------+-------------+----------- _postgresql | yes | yes | yes | no limit | punbb | no | no | no | no limit | (2 rows) punbb-> select * from pg_user; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig -------------+----------+-------------+----------+-----------+----------+----------+----------- _postgresql | 10 | t | t | t | ******** | | punbb | 16384 | f | f | f | ******** | | (2 rows) How do I please set the database "punbb" to be the default database for the user called "punbb"? Regards Alex
Alexander Farber <alexander.farber@gmail.com> writes: > Hello, > > I've created a user and a database both wrongly named "phpbb". > After that I have renamed both to "punbb" using "ALTER DATABASE" > and "ALTER USER". Now everything works fine, except I always > have to specify the database when connecting (both using psql or > the PQconnectdb() from my C-program): > > h754814:afarber {103} psql -U punbb > psql: FATAL: database "phpbb" does not exist psql uses your Unix username as the default database if you don't specify one. -Doug
Hi, On 1/30/06, Doug McNaught <doug@mcnaught.org> wrote: > Alexander Farber <alexander.farber@gmail.com> writes: > > h754814:afarber {103} psql -U punbb > > psql: FATAL: database "phpbb" does not exist > > psql uses your Unix username as the default database if you don't > specify one. but I do specify the database username: h754814:afarber {109} psql --help | grep -w user -U NAME database user name (default: "phpbb") h754814:afarber {110} psql -U punbb psql: FATAL: database "phpbb" does not exist And it wants to connect to a wrong database ("phpbb" instead of "punbb") Regards Alex
Alexander Farber <alexander.farber@gmail.com> writes: > but I do specify the database username: > > h754814:afarber {109} psql --help | grep -w user > -U NAME database user name (default: "phpbb") > > h754814:afarber {110} psql -U punbb > psql: FATAL: database "phpbb" does not exist > > And it wants to connect to a wrong database > ("phpbb" instead of "punbb") I was talking about the name of the database, not the user name in the database. The former defaults to the same as your Unix username (e.g. if I log in as 'doug' psql will try to connect me to a database called 'doug' if I don't supply a database name). The PGDATABASE environment variable overrides this. Are you sure it's not set? Anyway, you should always supply the database name explicitly when you connect--it's a lot safer. -Doug
Argh, I had "phpbb" in my env ( ~/.login) too: setenv PGDATA /var/postgresql/data setenv PGDATABASE phpbb setenv PGHOST /var/www/tmp setenv PGUSER phpbb Now everything makes sense (I was thinking about some kind of system table for default databases). Sorry and thank you for your help Regards Alex On 1/30/06, Doug McNaught <doug@mcnaught.org> wrote: > I was talking about the name of the database, not the user name in the > database. The former defaults to the same as your Unix username > (e.g. if I log in as 'doug' psql will try to connect me to a database > called 'doug' if I don't supply a database name). The PGDATABASE > environment variable overrides this. Are you sure it's not set? > > Anyway, you should always supply the database name explicitly when you > connect--it's a lot safer.