Anzeige:
Ergebnis 1 bis 4 von 4

Thema: PostgreSQL: Client-Beispiele in C funktionieren nicht

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.03.2001
    Beiträge
    650

    Unhappy PostgreSQL: Client-Beispiele in C funktionieren nicht

    Auf der CD zum Buch "Datenbank-Anwendungen mit PostgreSQL" sind Beispiele auch in C und ich habe dort angefangen mit dem ersten Beispiel in C, angepaßt an Pfade und Datenbanken auf dem lokalen Rechner:

    Code:
    #include <stdio.h>
    #include "/usr/include/pgsql/libpq-fe.h"
    
    int main(int argc, char **argv)
    {
    	PGconn	*dbhandle;
    	dbhandle = PQconnectdb("dbname=kurs1 user=postgres");
    	if	(PQstatus(dbhandle) == CONNECTION_BAD)
    	{
    		char *message = PQerrorMessage(dbhandle);
    		printf("keine Verbindung: %s \n", message);
    		return (1);
    	}
    	printf("Verbindung ok\n");
    	PQfinish(dbhandle);
    	return 0;
    }
    aber das funktioniert nicht:

    > ./prog
    keine Verbindung: FATAL: Ident authentication failed for user "postgres"

    Manuell kann ich mich aber als postgres einloggen und mit psql stock1 zur Datenbank connecten.
    Wieso also funktioniert das Programm nicht?
    Wo gibt es funktionierende Beispiele?

  2. #2
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569
    von C verstehe ich nichts, aber du solltest einen anderen Postgres-User anlegen, und als solcher die Datenbank kurs1 anlegen.

    arbeite _nie_ als user postgres. Der ist ausschließlich zur Administration da.
    Das Ziel ist das Ziel.

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.06.1999
    Beiträge
    677
    Zitat Zitat von nobody0
    > ./prog
    keine Verbindung: FATAL: Ident authentication failed for user "postgres"
    Das bedeutet das die libpq-Funktion schonmal klappt, aber die Verbindungsparameter nicht stimmen. Vermutlich steht in der pg_hba.conf Deines Postgres-Servers beim User postgres, dass eine "ident" Überprüfung erfolgen soll. Das klappt nur wenn auf dem Client seinerseits der ident-Dienst läuft; im allgemeinen sollte diese Option also nicht verwendet werden.

  4. #4
    Registrierter Benutzer
    Registriert seit
    23.03.2001
    Beiträge
    650
    Ok, durch Umstellen von ident auf trust in /var/lib/pgsql/data/pg_hba.con und mit dem user pg funktioniert es; danke

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •