Peer authentication failed error arrives when you try to login to your PostgreSQL user but authentication fails because by default psql
connects over UNIX sockets using peer
authentication instead of password authentication.
In this article we will learn how to get rid of FATAL: Peer authentication failed for user "postgres" error by enforcing password authentication over Unix sockets peer method,
First, navigate to the /etc/postgresql/10/main
directory.
cd /etc/postgresql/10/main
Note that 10
is the PostgreSQL version it can be different for you.
Here resides the pg_hba.conf
file we need to do some changes here you may need sudo
access for this.
sudo nano pg_hba.conf
Scroll down the file till you find this -
# Database administrative login by Unix
domain socketlocal all postgres peer
Here change the peer to md5 as follows.
# Database administrative login by Unix
domain socketlocal all postgres md5
peer
means it will trust the authenticity of UNIX user hence does not prompt for the password.md5
means it will always ask for a password, and validate it after hashing withMD5
.
Now save the file and restart the Postgres server.
sudo service postgresql restart
And that's it!
Try to log in now.
sudo -u postgres psqlPassword:postgres=#