2011-07-10 5 views
8

、私はPostgreSQLの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の究極の32ビット
  • PostgreSQLサーバ9.0.2

これについての助力は高く評価されるでしょう。

+0

接続しようとすると、IPv4アドレスではなくIPv6アドレスに接続していて、IPv6アドレスはpg_hba.confに存在しないからです。 pg_hba.confにIPv6アドレスを追加し、PostgreSQLをリロードしてください。 – Sean

+1

pg_hba.confにIPを追加しようとすると、 "host all all fe80 :: c81c:9e9c:6570:d0bf/128 md5"のようになります。 – Igor

+1

マニュアルによると、 "samenet"はサブネット内の任意のアドレスサーバーが直接接続されていて、 "samehost"がサーバー自身のIPアドレスのいずれかと一致する場合、私は運が悪い場合に両方を試しました。 –

答えて

6

これは、IPv6対応のWindowsコンピュータでのPostgreSQLインストールの問題です。一時的な回避策は、この資料に記載されているようにパラメータ "-h 127.0.01"を渡すことです。

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

+0

またはリモートマシンでこれを実行している場合は、-h <実際のホストのIPv4>。マシン名を使用すると、v6に解決され、動作しません。 –

3

samehostおよびsamenetが依存するインターフェイス列挙コードは、プラットフォームによって大きく異なります。 (現在、プラットフォームごとに異なる5つの実装があります)。したがって、1つのセットアップで動作するものは、別の場所では動作しない可能性があります。類似した設定は、Linux上で私の作品、言っ

は、つまり、私は適切にlistening_addressessamenetを設定した後

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

を使用して、ローカルホスト上のデータベースサーバに接続することができます。

したがって、Windowsのインターフェイス列挙コードには、リンクローカルアドレスが含まれていないと考えられます。

この問題を十分に分かっていれば、私はPostgreSQLにバグレポートを送って問題をさらに分析します。

1

私は同じ問題を抱え、両方のマシンでipv6サポートをオフにして解決しました。これがあなたのためのオプションであるかどうか確かではありません。

4

これは、ここでは他のユーザーによって回答されているが、私は他の人のために、より明確にするために、ここで答えを表示する:

pg_hba.confのでは、あなたのIPv6アドレスは次のように追加します。

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

fe80 :: c81c:9e9c:6570:d0bfはあなたのipv6アドレスです。

1

また、ローカルホストのため

host  all  all  ::1/128  md5 

を使用することができます。

0

可能なアダプタでIPV6をオフにします。 その後、do

netsh interface teredo set state disabled 

これは、GUIからは見えない仮想ネットワークインターフェイスを無効にします。

関連する問題