Windows PostgreSQLをインストールしています。
いくつかの投稿によると、「postgres」ユーザーに設定されたデフォルトのパスワードはありませんが、空のパスワード文字列を使用して接続することはできません。
接続しようとすると、この例外を受け取ります。
Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "postgres"
最も関連したヒントは次のとおりです。 https://stackoverflow.com/a/25943227/1005607
Open pg_hba.conf
Change md5 -> TRUST
then restart PgAdmin.
私はそれを試してPGAdminを再起動しましたが、接続しようとするとパスワードを尋ねられます:
Windowsのタスクマネージャーは、いくつかのPostgreSQLプロセスが実行されていることを示します。スイッチをオフにすることはできません。
私はこれを試しましたが失敗しました:
pg_ctl restart
ERROR:
pg_ctl: no database directory specified and environment variable PGDATA unset
psql.exe postgres
Password: (none)
ERROR:
psql: fe_sendauth: no password supplied
ユーザー「postgres」のデフォルトのパスワードをリセットするにはどうすればよいですか?
AK47の回答といくつかの追加情報に基づいて、次のようにして修正しました。
1)現在実行中の場合はPostgresを停止します(以下のコマンドライン)。 「データ」ディレクトリを指定する必要があります。私の場合、C:\ PostgreSQL\data
pg_ctl -D C:\PostgreSQL\data stop
2)ファイルpg_hba.conf
(\ data dirにもあります)を次のように編集します。
AK40が書いたように、c すべてのMD5参照を信頼に変更、例えば.
# TYPE DATABASE USER ADDRESS METHOD
# 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.
Host replication all 127.0.0.1/32 trust
Host replication all ::1/128 trust
3)実行する
psql -U postgres
4)表示されるPGコマンドプロンプトで、
ALTER USER Postgres WITH PASSWORD '<newpassword>';
5)wq
enterと入力してこれを保存し、PGプロンプトを終了します
6)次に、Postgresを起動します
pg_ctl -D C:\PostgreSQL\data start
7)MD5 -> Trust
のpg_hba.conf
変更を後で元に戻したい場合があります。
pg_hba.conf
ファイルを更新して、信頼できるローカル接続を許可します
[root@server] vim pg_hba.conf
>> local all all trust
postgreSQLサーバーを再起動します
[user@machine] pg_ctl -D C:\PostgreSQL\data restart (Windows)
[root@server] service postgresql restart (Linux)
この時点で、パスワードを入力せずにローカル接続を使用してpostgresユーザーとしてサーバーに接続できます(psql
コマンドを呼び出すときに-h
パラメーターを省略すると、ローカル接続が使用されます- -h
を渡すと、Host all all 0.0.0.0/0 <method>
ファイルのpg_hba.conf
行と一致します)
[root@server] psql -U postgres
psql
ターミナルで次のコマンドを使用して、postgresユーザーロールを変更し、パスワードを好きなものに設定できます。
[psql] alter role postgres password <new_password>;
これが完了したら、PostgreSQLサーバーを再起動できます
[user@machine] pg_ctl -D C:\PostgreSQL\data restart (Windows)
[root@server] service postgresql restart (Linux)
この時点で、パスワードを新しいパスワードに変更する必要があります