【PostgreSQL】postgresユーザーのパスワードを忘れた場合の手順

PostgreSQLその他

postgresユーザーのパスワードを忘れた場合の手順

ここではpostgres ユーザのパスワードがわからなくなった場合に、再設定する方法を紹介します。

ざっくり手順としては、①pg_hba.confを編集しpostgresユーザーでパスなしでログインできるようにする、②パスワードを再設定する、③pg_hba.confを元に戻すという流れになります。

 

 

1. pg_hba.confの変更

pg_hba.confを変更しパスワードなしでログインできるように変更します。

pg_hba.confに「# IPv4 local connections:」の先頭に次の1行を加えて下さい。最後の「trust」はパスワードなしで接続可という意味なので一時的なものということをお忘れなく。

host    all             postgres        127.0.0.1/32            trust

 

青い行の箇所のようになればOKです。

 

 

2. pg_hba.confの設定を適用する

pg_hba.confの設定を適用するためにpg_ctl reloadを実行。次のコマンドはPostgreSQL12の例です(わからなかったらコンピュータごと再起動でも可)。

# PostgreSQL12の場合のreload例
pg_ctl -D "C:\Program Files\PostgreSQL\data" start

 

 

3. パスワード設定(ALTER分の実行)

パスワードを変更するALTER分を実行します。

--postgresユーザーのパスワードを'新しいパスワード'へ変更する
ALTER ROLE postgres with PASSWORD '新しいパスワード';

 

 

4. pg_hba.confを元に戻し再度reloadを実行

1で加えた1行を削除し、2のreloadを実行でOKです。

 

手順は以上です。

万が一の場合の手順として捉え頂き、pg_hba.confの変更は戻すことを忘れないでください。