ich benötige zum üben eine PSQL-Installation auf meinem Laptop. Da das Laptop in verschiedenen Netzen benutzt wird muss dieses auf DHCP stehen. Es soll also lediglich auf und von localhost zugegriffen werden und ich bekomme es nicht hin. Auf den Server (Netz-Zugriff) auf statische IP hatte ich keine Probleme.
Zunächst habe ich (als User root angemeldet) das Passwort gesetzt:
sudo -u postgres psql
\password postgres
Enter new password:geheim
\q
In der postgresql.conf habe ich folgende Wert geändert:
listen_addresses = 'localhost'
port = 5432
Nach einem Restart von PSQL konnte ich sehen dass der Server auf 127.0.0.1 und dem Port lausch:
hinzu gefügt. Wenn ich nun versuche per pgAdmin darauf zu verbinden erhalte ich:
Ident authentication failed
The server doesn’t accept the current user: The server reports
FATAL: Ident-Authentifizierung für Benutzer »postgres« fehlgeschlagen
If this message appears, the pg_hba.conf entry found for your client / user / database combination is set to “ident” authentication
Vermutlich hast Du weiter oben eine local-Definition mit ident stehen, ändere das auf md5. Vermutlich hast Du ein unixoides System auf dem Laptop, Du brauchst einklich gar keine host-Definition und auch kein listen_adresses, es reichen die Unix-Socket-Verbindungen aus.
ich habe das “peer” auf md5 geändert und meine Zeile wieder entfernt.
Anschließend noch die orginale postgresql.conf wieder aktiviert und den postgresql neu gestartet. Im pgAdmin gebe ich nun als Host “localhost” an, einen Namen und das Passwort. Den Rest lasse ic auf den Vorgaben.
Aber noch immer:
Ident authentication failed
The server doesn’t accept the current user: The server reports
FATAL: Ident-Authentifizierung für Benutzer »postgres« fehlgeschlagen
Dann findet er halt einen Eintrag in der pg_hba.conf, der zur versuchten Anmeldung paßt. Psql macht, wenn es geht (wenn kein Host angegeben ist) eine Verbindung über Socket auf.
The host is the IP address of the machine to contact, or the fully qualified domain name. On Unix based systems the address field may be left blank to use the default PostgreSQL Unix Domain Socket on the local machine, or be set to an alternate path containing a PostgreSQL socket. If a path is entered, it must begin with a “/”. The port number and SSL connection options may also be specified.