web-dev-qa-db-ja.com

PostgreSQLサーバーに接続:致命的:ホストのpg_hba.confエントリなし

こんにちは私に送られたウェブサイトを実行しようとしていますが、そうした後、このエラーが表示されました

connect to PostgreSQL server: FATAL: no pg_hba.conf entry for Host "4X.XXX.XX.XXX", user "userXXX", database "dbXXX", SSL off in C:\xampp\htdocs\xmastool\index.php on line 37

Googling の後、pg_hba.confファイルに特定のユーザーのエントリを追加する必要があるだけです。これは私のpg_hba.confファイルです。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
local dbXXX userXXX md5
Host    dbXXX  userXXX  XX.XXX.XXX.XXX           md5
Host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
Host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#Host    replication     postgres        127.0.0.1/32            md5
#Host    replication     postgres        ::1/128                 md5

しかし、そうした後も、エラーは解決しません。 XAMPPサーバーを数回再起動しましたが、変更が表示されません。前もって感謝します

204
Jin

postgresql.confに次の行を追加または編集します。

listen_addresses = '*'

次の行をpg_hba.confの最初の行として追加します。暗号化されたパスワードを使用して、すべてのユーザーがすべてのデータベースにアクセスできるようにします。

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
Host  all  all 0.0.0.0/0 md5

これをservice postgresql restartまたは設定に相当するコマンドで追加した後、Postgresqlを再起動します。

244
Jérôme Radix

このソリューションはIPv4/IPv6で機能します

nano /var/lib/pgsql/data/pg_hba.conf

最後に追加

Host all all      ::1/128      md5
Host all postgres 127.0.0.1/32 md5

そしてpostgresqlサービスを再起動します

/etc/init.d/postgresql restart
25
Jose Nobile

私がこれを解決した方法は:

以下の行をpg_hba.confに追加しました:

hostnossl    all          all            0.0.0.0/0  trust        

これはpostgresql.confで次のように変更されました:

listen_addresses = '*'  

このインスタンスをCentos 7.およびPostgres 9.5で実行しましたVM in Azureで、これが与えられます実際の製品環境ではSSLなしでは接続したくないPOC(概念実証)でした。

私が使用していたインスタンスに接続するには、pgAdmin 4 on macOS Sierraを使用しました。

13
Roberto Lopez

新しいPostgres 9.5インストール、Ubuntu。

キーはlocal接続タイプでした。これは、psqlがドメインソケット接続を使用するためです。

pg_hba.conf

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
local all all md5
Host  all  all 0.0.0.0/0 md5
6
willianpts
  1. pg_hba.confの下部に次の行を追加します。

    hostnossl all all 0.0.0.0/0 md5

  2. postgresql.confの行を追加/変更:

    listen_addresses = '*'

  3. 接続しているユーザーにパスワードがあることを確認します(例:postgresという名前の接続ユーザー)

    a。次のpsqlコマンドをpostgresユーザーアカウントで実行します。

    Sudo -u postgres psql postgres

    b。パスワードを設定します。

    # \password postgres

enter image description here

4
nguyên

SSHトンネルを使用してローカルデータベースに接続しようとしたときにも、同じエラーが発生しました。ホスト名をlocalhostから127.0.0.1に変更することで解決しました。

3
Finesse

Debianユーザー向けの説明。

Posgresユーザーとしてログイン:

$ Sudo su - postgres

データベースをクエリして、pg_hba.confの場所を取得します。

$ psql -c "SHOW hba_file;"

              hba_file               
-------------------------------------
/etc/postgresql/11/main/pg_hba.conf
(1 row)

Pg_hba.confを開きます。

nano /etc/postgresql/11/main/pg_hba.conf

「ここに実際の構成を配置してください」と表示されている場所に構成を追加します。

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
Host  all  all 0.0.0.0/0 md5

ユーザーにログアウトします。

$ exit
logout

Postgresサーバーを再起動して、変更を有効にします。

$ Sudo systemctl restart postgresql
2

正しい構成ファイルを見つけます。

su - postgres -c "psql -t -P format=unaligned -c 'show hba_file';"

ファイルの最後に次を追加します。

local all all peer

次に、PostgreSQLアプリケーションを再起動します。

/bin/systemctl restart postgresql*.service
2
Feriman

これは私のために働きました:(pg_hba.conf)

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only     
local   all             all                                     md5
# IPv4 local connections:
Host    all             all             127.0.0.1/32            trust
Host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust
Host    all             all             0.0.0.0/0               trust

信頼

無条件に接続を許可します。この方法では、PostgreSQLデータベースサーバーに接続できるすべてのユーザーが、パスワードやその他の認証を必要とせずに、希望するPostgreSQLユーザーとしてログインできます。

md5

認証のために、クライアントにダブルMD5ハッシュパスワードを提供するよう要求します。

詳細はこちら こちら

1
Ravistm

私の場合、エラー情報で提案されているとおりの正確な行を追加する必要がありました。ルールとしてすべてのIPを持つ「すべての」ユーザーを追加することで、これをバイパスすることはできません。今のようです:

CentOS 7上のPosgreSQL 10.5。

# IPv4 local connections:
Host    all             all             127.0.0.1/32                    md5
Host    <db_name>       postgres        <my_client_machine_ip>/32       md5
1
WesternGun