2017-02-20 6 views
0

Ich lag bei Postgresql/Django Problem. Nach dem Versuch, den lokalen Host-Server ausgeführt wird, wird folgende Fehler bekamDocker verwirrt mit lokalen Django/Postgres-Projekten. Ich kann kein Projekt auf localhost ausführen

django.db.utils.OperationalError: FATAL: no pg_hba.conf entry for host "172.17.0.1", database "closerdb", SSL off 

Nach vielen ähnlichen Fragen und Antworten letzten Zeilen auf pg_hba.conf sehen so aus:

host all    all    0.0.0.0/0    md5 
local replication  postgres        trust 
host replication  postgres  127.0.0.1/32   trust 
host replication  postgres  172.17.0.1    trust 
host replication  postgres  ::1/128     trust 

ich Postgres nach der Bearbeitung Conf-Neustart Datei, aber Fehler bleibt. Ich nehme an, dass es von der Docker-Installation verursacht wurde, weil normalerweise django-Projekt auf Loclahost (127.0.0.1) ausgeführt werden muss und 172.17.0.1 eine Standard-Docker-IP ist.

Wie all das zu beheben und solche Probleme in Zukunft zu vermeiden?

EDIT: django Datenbankeinstellungen. zuvor hat gut funktioniert, bevor Docker Installation:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'closerdb', 
     # 'HOST': '/tmp/mysql.sock', 
     # 'PORT': '8000',    
     # 'HOSTNAME': '', 
     'USER': 'thekotik', 
     'PASSWORD': '', 
     'HOST': 'localhost', 
     'PORT': '', 
    } 
} 

Antwort

0

Ich nehme an, Ihre django nur mit einer Datenbank verbinden will, genannt closerdb. In diesem Fall wird der entsprechende sollte pg_hba.conf Eintrag so aussehen:

host closerdb  postgres  172.17.0.1    trust 

Vom postgresql docs:

Der Wert Replikation gibt an, dass der Datensatz übereinstimmt, wenn eine Replikationsverbindung angefordert wird (beachten Sie, dass Replikationsverbindungen nicht Spezifizieren Sie eine bestimmte Datenbank). Ansonsten ist dies der Name einer bestimmten PostgreSQL Datenbank

Ich möchte auch darauf hinweisen, dass Sie trust sorgfältig je nach Ihrer Umgebung verwenden sollten, denn:

die Verbindung bedingungslos zulassen. Diese Methode ermöglicht jedem, der sich mit dem PostgreSQL-Datenbankserver verbinden kann, sich als beliebiger PostgreSQL-Benutzer anzumelden, ohne ein Passwort oder eine andere Authentifizierung zu benötigen.

+0

django Projekt muss auf 127.0.0.1 laufen, so löschte ich alle Host-Linien und fügte hinzu, diese .conf: host closerdb Postgres 127.0.0.1 Vertrauen –

+0

Änderungen angewendet, aber der gleiche Fehler bleibt –

+1

Der Fehler zeigt an, dass die Verbindung wird zum Socket '172.17.0.1: 5432' hergestellt - wenn Sie das nicht mögen, sollten Sie Ihr Setup ändern. – dahrens

Verwandte Themen