Konfigurowanie połączenia serwera postgresql z pgadmin3 kończy się niepowodzeniem z wyjątkiem wyjątku

1

Zainstalowałem bazę danych postgresql na Fedorze 17.

Kiedy tworzę nowe połączenie z serwerem za pośrednictwem pgadmin3, pojawia się ten błąd w wyskakującym oknie:

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. 

host all all 192.168.0.0/24 md5Dokonałem zmiany wymienionej w komunikacie o błędzie, dodałem do pg_hba.conf. Ale nadal pojawia się ten sam błąd. Co ja robię źle?

Eric Leschinski
źródło

Odpowiedzi:

1

Błąd, który popełniłem, polegał na tym, że zapomniałem odkomentować inne linie ustawiające hosta i nie zrestartowałem postgresql, aby obowiązywały nowe zmiany w tym pliku. Oto kroki, które zastosowałem:

  1. Znajdź swoją pg_hba.conf, moja jest w/var/lib/pgsql/data/pg_hba.conf

  2. Oto oryginalna niepoprawna treść pg_hba.conf, zwróć uwagę na dwie linie hosta dla IPv4 i 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. Musiałem dodać te linie na końcu tego pliku

    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. Jeśli nie skomentujesz innych domyślnych wierszy tutaj, to nie zadziała:

    #host    all             all             127.0.0.1/32            ident
    # IPv6 local connections:
    #host    all             all             ::1/128                 ident
    
  5. Następnie uruchom ponownie postgresql.

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

Po ponownym uruchomieniu spróbuj ponownie, a błąd zostanie naprawiony. Następnie mogę zalogować się do serwera z pgadmin3.

Eric Leschinski
źródło