How To Fix – FATAL: Peer authentication failed for user “postgres” Error

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.conffile 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 socket
local   all             postgres                                peer

Here change the peer to md5 as follows.

# Database administrative login by Unix domain socket
local   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 with MD5.

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 psql
Password: 
postgres=#

Support Django Central

If you appreciate my work, or if it has helped you along your journey. It would mean a lot to me if you could write a message on my wall and share a cup of coffee (or tea) with me.
Buy Me a Coffee at ko-fi.com

1 thought on “How To Fix – FATAL: Peer authentication failed for user “postgres” Error”

Leave a Comment