2017-02-20 17 views
0

Я воспользовался вопросом postgresql/django. После того, как попытка запуска сервера LOCALHOST получил следующую ошибкуDocker возился с местными проектами django/postgres. Не удается запустить проект на localhost

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

По мнению многих подобных вопросов и ответов последние строки в pg_hba.conf выглядеть так:

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 

Я перезапуске Postgres после редактирования .conf файл, но ошибка остается. Я предположил, что это связано с установкой докеров, потому что обычно проект django должен запускаться на loclahost (127.0.0.1), а 172.17.0.1 является стандартным докере ip.

Как исправить все это и избежать таких проблем в будущем?

EDIT: настройки базы данных django. работал отлично ранее перед установкой докер:

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

ответ

0

Я полагаю, ваш Джанго просто хочет, чтобы подключиться к базе данных под названием closerdb. В этом случае соответствующая pg_hba.conf запись должна выглядеть так:

host closerdb  postgres  172.17.0.1    trust 

От postgresql docs:

Значение репликации указывает, что запись соответствует, если соединение репликации запрашивается (обратите внимание, что соединения репликации не указать любую конкретную базу данных). В противном случае, это имя конкретной PostgreSQL базы данных

Я также хочу отметить, что вы должны использовать trust тщательно в зависимости от среды, потому что:

Разрешить подключение без всяких условий. Этот метод позволяет любому, кто может подключиться к серверу базы данных PostgreSQL, войти в систему как любой пользователь PostgreSQL, которого они желают, без необходимости использования пароля или любой другой аутентификации.

+0

Джанго проект должен работать на 127.0.0.1, так что я удалил все строки хоста и добавили один к .conf: хозяин closerdb Postgres 127.0.0.1 доверие –

+0

применяются изменения, но та же ошибка остается –

+1

ошибка указывает на то, что соединение устанавливается в гнездо '172.17.0.1: 5432' - если вам не нравится это, вы должны изменить свою настройку. – dahrens

 Смежные вопросы

  • Нет связанных вопросов^_^