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/mainNote that 10 is the PostgreSQL version it can be different for you.
Here resides the pg_hba.conffile we need to do some changes here you may need sudo access for this.
sudo nano pg_hba.confScroll down the file till you find this -
# Database administrative login by Unix
domain socketlocal all postgres peerHere change the peer to md5 as follows.
# Database administrative login by Unix
domain socketlocal all postgres md5peermeans it will trust the authenticity of UNIX user hence does not prompt for the password.md5means 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 restartAnd that's it!
Try to log in now.
sudo -u postgres psqlPassword:postgres=#