FATAL: нет записи pg_hba.conf для хоста "fe80:: 1% lo0"
Может кто-нибудь помочь мне, почему это происходит, когда я пытаюсь подключиться к базе данных или rails s
?
В моем файле pg_hba.conf у меня есть это:
# TYPE DATABASE USER 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 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication Andrew trust
#host replication Andrew 127.0.0.1/32 trust
#host replication Andrew ::1/128 trust
local all all md5
Возможно, я делаю это неправильно?
Спасибо
Ответы
Ответ 1
У меня была та же проблема. так или иначе, эта строка была добавлена в файл /etc/hosts:
fe80::1%lo0 localhost
комментирование или удаление этой строки из /etc/hosts должно исправить ее
sudo vi /etc/hosts
#fe80::1%lo0 localhost
Ответ 2
Я на OSX 10.9.3 и Postgres 9.3.4.
Мне удалось решить эту проблему следующим образом:
Сначала найдите файл pg_hba.conf
, запустив psql с помощью psql -h 127.0.0.1
и выполнив SHOW hba_file;
:
hba_file
-------------------------------------
/usr/local/var/postgres/pg_hba.conf
(1 row)
Теперь добавьте следующую строку в pg_hba.conf
:
host all all fe80::1%lo0/128 trust
и перезагрузите конфигурацию с помощью select pg_reload_conf();
в psql
.
Теперь вы можете подключиться через psql -h fe80::1%lo0
.
Ответ 3
Oo, это интересный.
Предполагая, что вы подключаетесь к localhost
(вы не сказали и не показывали свой database.yml
), кажется, что localhost
разрешает локальный адрес локальной сети IPv6 с индексом зоны.
Если вы используете ::1
или 127.0.0.1
, он должен работать.
Это, скорее всего, неправильная конфигурация или ошибка операционной системы, поэтому на вопрос нужно добавить намного больше деталей (см. комментарий выше), если вы хотите получить конкретный совет.
Ответ 4
Для меня причина заключалась в вызове sudo rails server -p 80
.
Я связал сервер рельсов с портом 80, поэтому мне не нужно было указывать порт в URL localhost:3000
во время разработки. Кажется, он пишет fe80::1%lo0»localhost
в мой файл /etc/hosts
.
Попробуйте прокомментировать строку в вашем файле hosts, а затем запустите rails s -p 3000
Ответ 5
На самом деле,
То же самое происходит со мной, когда я выполняю команду pg_dump
, чтобы сделать резервную копию моей базы данных сервера (внешней), как показано ниже
'/Applications/Postgres.app/Contents/Versions/9.3/bin'/pg_dump -d "<database_name>" -h <server_name> -U <db_user_name> -f <destination_path>
Я решил (обойти), заменив мой <server_name>
на мой фактический IP-адрес сервера (10.1.0.18
).
Итак, проблема здесь в том, что моя система не понимает хост <server_name>
.
Он может решаться постоянно, когда вы добавляете хост <server_name>
в файл/private/etc/hosts.
Ответ 6
Другой вариант: если IPv6 не используется в сети, вы можете просто отключить его. В службе Windows IPv6 также можно отключить.