1

I have installed postgresql database on Fedora 17.

When I create a new server connection through pgadmin3, I get this Error in a popup window:

postgresql The server doesn't accept the current user: The server report
Ident authentication failed
The server doesn't accept the current user: The server reports 

FATAL: Ident authentication failed for user "pgadmin" 
If this message appears, the pg_hba.conf entry found for your 
client / user / database combination is set to "ident" authentication.  
Some distributions, e.g. Debian, have this by default. To perform ident  
based authentication successfully, you need additional setup; see the  
PostgreSQL help for this. For a beginner, it might be more appropriate  
to use a different authentication method; MD5 encrypted passwords are  
a good choice, which can be configured by an entry in pg_hba.conf like  
this: 

host all all 192.168.0.0/24 md5 

This example grants MD5 encrypted password access to all databases to  
all users on the private network 192.168.0.0/24. 
You can use the pg_hba.conf editor that is built into pgAdmin III to  
edit the pg_hba.conf configuration file. After changing pg_hba.conf,  
you need to trigger a server configuration reload using pg_ctl or by  
stopping and restarting the server process. 

I have made the change mentioned in the error message, I added host all all 192.168.0.0/24 md5 to the pg_hba.conf. But I still get the same error. What am I doing wrong?

1

The mistake I made was that I forgot to uncomment the other lines that set the host, and I didn't restart postgresql so that new changes to that file would take effect. Here are the steps I used:

  1. Find your pg_hba.conf, mine is in /var/lib/pgsql/data/pg_hba.conf

  2. Here are the original incorrect contents of pg_hba.conf, notice the two host lines for IPv4 and IPv6:

    # 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            ident
    # IPv6 local connections:
    host    all             all             ::1/128                 ident
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local   replication     postgres                                peer
    #host    replication     postgres        127.0.0.1/32            ident
    #host    replication     postgres        ::1/128                 ident
    
  3. I had to add these lines at the end of that file

    host all all 127.0.0.1/32 md5
    #the 32 means only the first 32 bits cannnot change, not the first 24.
    #I use 32 because only one address will be accessing this server.
    
  4. If you don't comment out the other default lines here it won't work:

    #host    all             all             127.0.0.1/32            ident
    # IPv6 local connections:
    #host    all             all             ::1/128                 ident
    
  5. Then restart postgresql.

    [root@rosewill samples ]$ systemctl restart postgresql.service
    

After restart, try again, and the error is fixed. Then I can login to the sever with pgadmin3.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.