12

I'm trying to connect to a postgresql database which is in localhost:5432 but I keep getting the error: FATAL: Ident authentication failed for user "".

I installed Postgres11 on virtual machine running Centos7. Created a database through command line, with the name business_db.

I've checked and postgresql is running in localhost:5432.

My pg_hba.conf file is like this:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     peer
host    all             all             127.0.0.1/32           ident
host    all             all             ::1/128                 ident
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

The pg_ident.conf file doesn't hold any configurations:

# Put your actual configuration here
# ----------------------------------

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME

The database exists as shown by the command:

Database list

I'm logged into the system as "dev" user but., whatever I try while testing connection whit DBeaver, I allways get the error:

ERROR

I also tried to set User as postgres and use my system password but get the same error. What am I missing?

avaros
  • 177
  • 1
  • 1
  • 9
  • Still true for DBeaver. I tried to upgrade driver version, but could not find clear guidelines how to do this. – Le Ma Dec 12 '21 at 11:41

4 Answers4

7

When you use JDBC, you have to use password authentication. Neither ident nor peer will work for that.

You will need to add, e.g.:

host    all             all             127.0.0.1/32           md5

at the top of your pb_hba.conf

(replace md5 with scram-sha-256 if you are using that)

  • Preliminary to this record in pg_hba.conf some configuration steps related to database itself (password encryption method) should be done as described in article https://stackoverflow.com/a/64336274/1017684 – Le Ma Dec 12 '21 at 11:37
3

Change the ident to trust if you don't want to enter a password or to md5 if you want to enter a password.

Then reload the PostgreSQL server.

Laurenz Albe
  • 209,280
  • 17
  • 206
  • 263
2

In (Ubuntu OS), change (or set) password in this way to solve this problem:

1- In terminal, run this command:

sudo -u postgres psql template1

2- Then run this command:

ALTER USER postgres with encrypted password 'your_password';
AnasSafi
  • 5,353
  • 1
  • 35
  • 38
0

remove any spaces from your password, this worked for me