PostgreSQL pg_hba.conf Проблема - PullRequest
8 голосов
/ 10 июля 2011

В pg_hba.conf у меня есть

host    all             all             127.0.0.1/32            md5
host    all             all             samenet            md5

Я также добавил

host    all             all             samehost            md5

на обоих.

Я использую pgAdminIII, пытаюсь создать «Регистрация нового сервера». Когда я подключаюсь к (localhost), все работает нормально. Но когда я меняю хост на фактическое имя рабочей станции, он говорит:

FATAL: no pg_hba.conf entry for host "fe80::c81c:9e9c:6570:d0bf%20", user "postgres", database "postgres", SSL off 

Дополнительная информация

  • Операционная система: Windows 7 Ultimate 32 бит
  • PostgreSQL Server 9.0.2

Любая помощь по этому вопросу будет принята с благодарностью.

Ответы [ 6 ]

6 голосов
/ 25 февраля 2012

Это проблема установки PostgreSQL на компьютерах с Windows, на которых включен IPv6. Временный обходной путь будет проходить параметр "-h 127.0.01", как описано в этой статье.

http://postgresql.1045698.n5.nabble.com/FATAL-no-pg-hba-conf-entry-for-host-1-td1873063.html

4 голосов
/ 30 октября 2012

На этот вопрос ответил другой пользователь, но я хочу показать здесь ответ, чтобы сделать его более понятным для других:

В pg_hba.conf добавьте свой ipv6-адрес следующим образом:

host      all        all       fe80::c81c:9e9c:6570:d0bf/128       md5

fe80 :: c81c: 9e9c: 6570: d0bf - это ваш ipv6-адрес.

3 голосов
/ 11 июля 2011

Обратите внимание, что код перечисления интерфейса, на который опираются samehost и samenet, очень зависит от платформы.(В настоящее время существует 5 отдельных реализаций для разных платформ.) Так что то, что работает для одной установки, может не работать где-то еще.

Тем не менее, аналогичная установка работает для меня в Linux, то есть я могу подключиться ксервер базы данных на локальном хосте, используя

psql -d postgres -h 'fe80::xxxx:xxxx:xxxx:xxxx%eth0'

после соответствующей установки listening_addresses и samenet.

Таким образом, вполне возможно, что код перечисления интерфейса в Windows каким-то образом не включает ссылкулокальные адреса.

Если вы достаточно изолировали эту проблему, я бы отправил отчет об ошибке в PostgreSQL для дальнейшего анализа проблемы.

1 голос
/ 15 декабря 2012

Вы также можете использовать

host      all        all       ::1/128       md5

для локального хоста.

1 голос
/ 04 февраля 2012

У меня была та же проблема, и я решил ее, отключив поддержку ipv6 на обеих машинах. Не уверен, если это вариант для вас.

0 голосов
/ 03 апреля 2013

Отключите IPV6 на адаптерах, которые вы можете. После этого сделайте

netsh interface teredo set state disabled

Это отключит виртуальные сетевые интерфейсы, которые вы не видите в графическом интерфейсе.

...