Probleme bei DB-Connection via Python

Hallo zusammen,

ich versuche mich wie folgt mit einem Python-Script mit einer DB zu verbinden.

import pg
db = pg.connect(dbname='devel', host='localhost', user='maik')

maik ist Superuser. Bevor ich mein System neu aufgesetzt habe hatte das funktioniert, Jetzt bekomme ich folgende Fehlermeldung:

Traceback (most recent call last):
  File "radolan_66_v1.py", line 6, in ?
    db = pg.connect(dbname='devel', host='localhost', user='maik')
pg.InternalError: fe_sendauth: no password supplied

Ich poste hier im PostgreSQL-Forum da ich davon ausgehe, dass das Problem nicht bei Python liegt.

Vielleicht kann mir ja jemand helfen.
Danke schonmal im Voraus.

hi,

geb halt das passwort des users mit an. ohne passwort geht es einfach nicht. steht ja auch in der meldung.

evtl war vor der einrichtung das connecten von localhost mit dem option trust (siehe pg_hba.conf) realisiert…

cu tb.

Ok,

ich habe das jetzt ausprobiert. Allerdings akzeptiert er das Passwort nicht.

db = pg.connect(dbname='devel', host='localhost', user='maik', passwd='xyz')
pg.InternalError: FATAL:  Passwort-Authentifizierung für Benutzer »maik« fehlgeschlagen

Das Passwort stimmt definitiv. Ich habe jetzt extra die DB nochmal neu ertsellt um es zu testen. Aber das Resultat ist das gleiche.

hm, ich kenn mich jetzt nicht mit python aus und kann dir deshalb auch nicht sagen was los ist. aber du bist dir ganz sicher das das passwort stimmt?

du kannst ja mal für testzwecke bei localhost die authentifizierung auf trust setzen und schauen was passiert…

cu tb.

Ich habe jetzt mal die pg_hba.conf editiert. Allerdings bin ich mir nicht ganz sicher wie das ganze aussehen muss. Vielleicht kannst du ja mal drüberschauen? Muss ich die DB neu hochfahren, damit das aktiv wird oder reicht ein “pg_ctl reload”?

# Database administrative login by UNIX sockets
local  all all                                  trust

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                          trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

Ich habe jetzt einfach mal alles auf trust gesetzt und die DB neu gestartet. Jetzt funktioniert es. Das mit dem Passwort, kann das an md5 liegen?