2013-04-04 7 views
40

Ich bekomme ein Problem in Django Projekteinstellung mit POSTGRESQL.Django Einstellung: psycopg2.OperationalError: FATAL: Peer Authentifizierung fehlgeschlagen für Benutzer "Indivo"

Hier ist meine setting.py Datenbank

DATABASES = { 
    'default':{ 
     'ENGINE':'django.db.backends.postgresql_psycopg2', # '.postgresql_psycopg2', '.mysql', or '.oracle' 
     'NAME':'indivo', # Required to be non-empty string 
     'USER':'indivo', # Required to be non-empty string 
     'PASSWORD':'ritvik', 
     'HOST':'', # Set to empty string for localhost. 
     'PORT':'', # Set to empty string for default. 
     }, 
} 

Jetzt in Postgres Einstellung Backend, was ich getan habe ist.

Leider, wenn ich syncdb versuche, bekomme ich den Fehler.

psycopg2.OperationalError: FATAL: Peer authentication failed for user "indivo" 

Bitte helfen Sie mir, was ich hier falsch machen könnte.

+0

Doppelte Frage hier: [Django Verbindung zu PostgreSQL: „Peer-Authentifizierung fehlgeschlagen“] [1] [1]: http://stackoverflow.com/questions/ 8167602/django-Anschluss-to-postgresql-Peer-Authentifizierung-failed – user3404455

Antwort

6

Sie müssen pg_hba.conf für die Verwendung von md5 Authentifizierung für den Benutzer, db und Quelle IP von Interesse festlegen. Siehe Kapitel client authentication der Dokumentation.

Suche nach pg_hba.conf auf Stack Overflow für Tonnen mehr Informationen.

+0

bitte helfen Sie mir, wie Ehrlich in postgresql 9.0 – masterofdestiny

+2

@masterofdestiny einstellen, die Sie wirklich das Handbuch lesen sollten. Es umfasst all dies in der Tiefe. Unter Ubuntu 'pg_hba.conf' ist in'/etc/postgresql/9.1/main/pg_hba.conf'. Ansonsten ... es ist alles das Handbuch lesen [die Dokumentation auf 'pg_hba.conf'] (http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html). –

+0

Diese Linie hat es für mich: host all all 127.0.0.1/32 md5 – Harlin

26

In vielen Linux-Distributionen ist die Client-Authentifizierung standardmäßig auf "Peer" für Unix-Socket-Verbindungen zur Datenbank eingestellt. Dies wird in der Konfigurationsdatei pg_hba.conf für postgresql festgelegt. Die psycopg2 Python-Bibliothek Dokumentation heißt es:

- *host*: database host address (defaults to UNIX socket if not provided)

Also, wenn Sie die Host-Option leer, Ihr Skript verlassen wird versuchen, den Unix-Benutzernamen zu verbinden und zu verwenden: Passwort für die Authentifizierung. Um zu beheben, können Sie entweder:

  1. setzen Sie die "Host" -Option explizit auf 127.0.0.1 in den Konfigurationscode, den Sie in Ihre Frage eingefügt.
  2. Ändern Sie die pg_hba.conf Datei md5 für Socket-Verbindungen zu verwenden, so dass es in der postrgres DB Benutzerspeicher gespeichert Benutzernamen und Passwörter verwendet (nicht empfohlen, da diese Authentifizierung für Systembenutzer kann brechen)
+2

Vielleicht die Infos hinzufügen, dass Sie den PostgreSQL-Server neu starten werden müssen, nachdem die Bearbeitung des '' pg_hba.conf'': '' sudo Service postgresl Neustart '' –

43

ich ähnliches Problem und gelöst es mit this answer von localhost in die Datenbank HOST Einstellungen in settings.py hinzufügen, so dass Ihre Datenbank-Einstellungen sollte wie folgt aussehen:

DATABASES = { 
    'default':{ 
     'ENGINE':'django.db.backends.postgresql_psycopg2', # '.postgresql_psycopg2', '.mysql', or '.oracle' 
     'NAME':'indivo', # Required to be non-empty string 
     'USER':'indivo', # Required to be non-empty string 
     'PASSWORD':'ritvik', 
     'HOST':'localhost', # Set to empty string for localhost. 
     'PORT':'', # Set to empty string for default. 
     }, 
} 
+5

Danke für diese Antwort, es hat auch für mich funktioniert; trotz der Tatsache, dass der Kommentar sagt '# Set leere Zeichenfolge für localhost.' :( – contradictioned

+0

Ja, das auch für mich gearbeitet, dank einer Tonne. – Amyth

0

auch ich ähnliches Problem mit Django während des Einrichten postgresql Datenbank wurde mit Blick auf Projekt.

Mein System läuft RHEL CentOS 7 mit postgresql Version 10. Ich habe eine Menge suchen, aber couldnot finden tatsächlich, was geschieht, bis ich bei /var/lib/pqsql/10/data/log/postgresql*.log sah log

2017.11.10 00: 31: 40,499 IST [14129] DETAIL: Verbindung angepasst pg_hba.conf Linie 85: "Host alle alle :: 1/128 ident"

Also änderte ich nur, dass bestimmte Zeile in Datei/var/lib/pgsql/10/Daten/pg_hba.conf: von Host alle alle :: 1/128 ident

zu

Gastgeber alle alle :: 1/128 md5

mit, dass ich bin in der Lage Datenbank & Tabelle manage.py mit erstellen wandern

Vielen Dank für alle, die mir diese Lösung zu finden geholfen hat. insbesondere @juliocesar und offizielle Dokumentation beantwortet postgresql-Client-Authentifizierung

Verwandte Themen