59

WindowsマシンからPgadminを使用してサーバーにpostgresユーザーでログインしようとしました。

しかし、それは私にこのエラーを与え続けます:

psql: FATAL:  password authentication failed for user "postgres"

そこで、psqlを使用してコマンドラインからログインしようとしましたが、同じエラーが発生しました。次に、pg_hba.confのローカルエントリを信頼できるようにした後、psqlを使用してパスワードを「test」にリセットしました。次に、エントリをmd5に戻し、パスワード「test」でログインしようとしました。

psqlでは、次のコマンドを使用しました。

ALTER ROLE postgres WITH PASSWORD 'test';
ALTER ROLE postgres PASSWORD 'test';
ALTER USER postgres WITH PASSWORD 'test';
ALTER USER postgres PASSWORD 'test';

そして、この特別なpsqlコマンド

\password

毎回、pg_hba.confローカルエントリをmd5に戻し、psqlでログインしようとしました。

psql -U postgres

そして、パスワードを求められます。'test'を入力した後、psqlは前に述べたのと同じエラーを表示します。

そしてもちろん、pg_hbaファイルを変更するたびにpostgresqlを再起動しました。そして、私は「supostgres」でpsqlを使用しています。

そのため、通常の方法でパスワードを変更することはできますが、パスワードとして受け入れられません。

誰かがこれを手伝ってくれることを願っています。

いくつかの情報:

Postgresql 9.1 Ubuntu 12.04

Pg_hbaファイル(要求に応じて)

local   all             postgres                                md5

local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

host    all             all             <my-ip-address>/32        md5

パスワードを変更したいときは、最上位のmd5をtrustに変更しました。この構成は以前は問題なく機能していました。

の結果

sudo -u postgres psql -x -c "select * from pg_user where usename='postgres'"

は:

usename     | postgres
usesysid    | 10
usecreatedb | t
usesuper    | t
usecatupd   | t
userepl     | t
passwd      | ********
valuntil    | 1970-01-01 00:00:00+01
useconfig   |
4

5 に答える 5

79

最新の編集で示されているように、パスワードは1970年まで有効です。つまり、現在は無効です。これは、パスワードが間違っている場合と同じエラーメッセージを説明しています。

次のコマンドで有効性をリセットします。

ALTER USER postgres VALID UNTIL 'infinity';

最近の質問では、別のユーザーがユーザーアカウントとPG-9.2で同じ問題を抱えていました。

PostgreSQL-グループロールを追加した後、パスワード認証が失敗する

したがって、意図せずに偽のパスワードの有効性をUnixエポック(1970年1月1日、abstimeタイプの可能な最小値)に設定する方法があるようです。おそらく、PG自体または一部のクライアントツールにこの状況を引き起こすバグがあります。

編集:それはpgadminのバグであることが判明しました。https://dba.stackexchange.com/questions/36137/を参照してください

于 2013-01-28T16:13:28.180 に答える
11

私はこの質問に出くわしましたが、ここでの答えは私にはうまくいきませんでした。ログインできない理由がわからず、上記のエラーが発生しました。

postgresqlはユーザー名を小文字で保存しますが、認証時には大文字と小文字の両方を使用します。

CREATE USER myNewUser WITH PASSWORD 'passWord';

ユーザー名「mynewuser」とパスワード「passWord」のユーザーを作成します。

これは、「myNewUser」ではなく「mynewuser」で認証する必要があることを意味します。私のようなpgsqlの初心者にとって、これは混乱を招きました。この問題に遭遇した他の人に役立つことを願っています。

于 2016-12-29T08:59:04.557 に答える
10

pg_hba.confエントリは、IPアドレスによってログイン方法を定義します。pg_hba.conf適切なヘルプを取得するには、の関連部分を表示する必要があります。

この行を変更します。

host    all             all             <my-ip-address>/32        md5

ローカルネットワーク設定を反映するため。したがって、IPが192.168.16.78(クラスC)のマスクを使用している場合は255.255.255.0、次のように入力します。

host    all             all             192.168.16.0/24        md5

WINDOWS MACHINEがそのネットワークにあることを確認して、192.168.16.0再試行してください。

于 2013-01-28T15:00:43.557 に答える
1

ボックスへのrootアクセス権があると仮定すると、次のことができます。

sudo -u postgres psql

それがデータベースで失敗した場合、「postgres」はこのブロックに存在しません。

sudo -u postgres psql template1

次に、sudonano/etc/postgresql/11/main/pg_hba.confファイル

local   all         postgres                          ident

新しいバージョンのPostgreSQLの場合、identは実際にはピアである可能性があります。

psqlシェル内で、DBユーザーpostgresにパスワードを与えることができます。

ALTER USER postgres PASSWORD 'newPassword';
于 2019-04-24T08:15:16.077 に答える
0

私はWindowsマシンで同じ問題を抱えています

実際、別のユーザーでも同じエラーが発生しますが、問題は、自分のマシンにPostgresデータベースがインストールされていて、作業中のこの特定のプロジェクトで、DockerでPostgresイメージを使用しようとしていることです。プロジェクトを実行したいのですが、このエラーが発生します。最後に、問題はPostgresサービスが稼働していることであることがわかりました。そのため、最初にこれを終了してからservices.mscプロジェクトを実行して、Postgresイメージを使用する必要があります。

于 2022-02-25T17:17:04.317 に答える