How to fix an error: password authentication failed for the user in PostgreSQL

I have two solutions for this Error.
First solution :
open Terminal and write this command in terminal
sudo editor /etc/postgresql/<postgresql version >/main/pg_hba.conf- you can click
Tab, if you didn’t know PostgreSQL version
Then, go to the bottom of the file you just played and edit these lines
- if scroll didn’t work you can use keyboard buttons to scroll down
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5- you must change
peer and md5totrustto be as this
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trustpeermeans it will trust the identity (authenticity) of the UNIX users. So not asking for a password.md5means it will always ask for a password, and validate it after hashing withMD5.trustmeans it will never ask for a password, and always trust any connection.
Then follow these steps to fix Error:-
1- click Ctrl + s to save your edits.
2- click Ctrl + x to close the file.
3- run this command sudo service postgresql restart
Second solution :
If you remember correctly the user postgres has no DB password set on Ubuntu by default. That means, that you can log in to that account only by using the postgres OS user account.
Assuming, that you have root access on the box you can do:
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 template1If 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 identFor 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 Ctrl-D 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. :-)
Tidak ada komentar:
Posting Komentar