2011-07-10 5 views
8

W pg_hba.conf mamPostgreSQL pg_hba.conf Issue

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

Dodałem też

host all    all    samehost   md5 

na obu.

Używam pgAdminIII, próbuję utworzyć "nową rejestrację serwera". Kiedy łączę się z (localhost), działa dobrze. Ale kiedy zmienić hosta do rzeczywistej nazwy stacji roboczej mówi:

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

Dodatkowe informacje

  • System operacyjny: Windows 7 Ultimate 32 bit
  • PostgreSQL Server 9.0.2

Każda pomoc w tym zakresie byłaby bardzo ceniona.

+0

Dzieje się tak dlatego, że podczas próby połączenia użytkownik łączy się z adresem IPv6, a nie z adresem IPv4, a adres IPv6 nie istnieje w pliku pg_hba.conf. Dodaj swój adres IPv6 do pliku pg_hba.conf i załaduj ponownie PostgreSQL. – Sean

+1

spróbuj dodać twoje IP do pg_hba.conf, coś w rodzaju "host all fe80 :: c81c: 9e9c: 6570: d0bf/128 md5" – Igor

+1

Zgodnie z instrukcją, "samenet" pasuje do dowolnego adresu w dowolnej podsieci, którą serwer jest bezpośrednio połączony, a "samhost" pasuje do dowolnego z adresów IP serwera, próbowałem obu bez powodzenia. –

Odpowiedz

3

Należy pamiętać, że kod wyliczeniowy interfejsu, na którym opierają się samehost i samenet, zależy od platformy. (Istnieje obecnie 5 osobnych implementacji dla różnych platform.) To, co działa dla jednej instalacji, może nie działać gdzie indziej.

Powiedział, że analogiczna konfiguracja działa dla mnie na Linuksie, to znaczy, czy mogę połączyć się z serwerem bazy danych na lokalnym komputerze przy użyciu

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

po ustawieniu listening_addresses i samenet odpowiednio.

Można sobie wyobrazić, że kod wyliczeniowy interfejsu w systemie Windows w jakiś sposób nie zawiera adresów lokalnych dla łącza.

Jeśli wystarczająco wyizolowałeś ten problem, wysłałbym raport o błędzie do PostgreSQL, aby dalej analizować problem.

1

Miałem ten sam problem i rozwiązałem go, wyłączając obsługę ipv6 na obu komputerach. Nie jestem pewien, czy jest to opcja dla ciebie.

4

to zostało odebrane przez innego użytkownika tutaj, ale chcę pokazać odpowiedź tutaj, aby uczynić bardziej jasne dla innych:

W pg_hba.conf, dodaj swój adres IPv6 tak:

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

fe80 :: c81c: 9e9c: 6570: d0bf to Twój adres IPv6.

1

Można również użyć

host  all  all  ::1/128  md5 

na localhost.

0

Wyłącz IPV6 na dostępnych przejściówkach. Po tym zrobić

netsh interface teredo set state disabled 

To spowoduje wyłączenie interfejsów wirtualnych sieci, których nie widać z GUI.