'password authentication failed for user "postgres"'
I have installed PostgreSQL 8.4, Postgres client and Pgadmin 3. Authentication failed for user "postgres" for both console client and Pgadmin. I have typed user as "postgres" and password "postgres", because it worked before. But now authentication is failed. I did it before a couple of times without this problem. What should I do? And what happens?
psql -U postgres -h localhost -W
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
If I remember correctly the user postgres
has no DB password set on Ubuntu by default. That means, that you can login to that account only by using the postgres
OS user account.
Assuming, that you have root
access on the box you can do:
sudo -u postgres psql
If that fails with a database "postgres" does not exists
error, then you are most likely not on a Ubuntu or Debian server :-) In this case simply add template1
to the command:
sudo -u postgres psql template1
If any of those commands fail with an error psql: FATAL: password authentication failed for user "postgres"
then check the file /etc/postgresql/8.4/main/pg_hba.conf
: There must be a line like this as the first non-comment line:
local all postgres ident
For newer versions of PostgreSQL ident
actually might be peer
. That's OK also.
Inside the psql
shell you can give the DB user postgres
a password:
ALTER USER postgres PASSWORD 'newPassword';
You can leave the psql
shell by typing CtrlD or with the command \q
.
Now you should be able to give pgAdmin a valid password for the DB superuser and it will be happy too. :-)
The response of staff is correct, but if you want to further automate can do:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Done! You saved User = postgres and password = postgres.
If you do not have a password for the User postgres ubuntu do:
$ sudo passwd postgres
This was frustrating, most of the above answers are correct but they fail to mention you have to restart the database service before the changes in the pg_hba.conf file will take affect.
so if you make the changes as mentioned above:
local all postgres ident
then restart as root ( on centos its something like service service postgresql-9.2 restart ) now you should be able to access the db as the user postgres
$psql
psql (9.2.4)
Type "help" for help.
postgres=#
Hope this adds info for new postgres users
Edit the pg_hba.conf file, for Debian on /etc/postgresql/9.3/main/pg_hba.conf
and for Red Hat/IBM derivates at /var/lib/pgsql/9.4/data/pg_hba.conf
- Change all authentication methods to
trust
. - Change Linux Password for
postgres
user. - Restart Server.
- Login with
psql -h localhost -U postgres
and use the just set Unix password. - If it works you should re-set the
pg_hba.conf
file to values withmd5
orident
methods and restart.