Posted at

Postgresでパスワードを忘れた場合の対策

More than 3 years have passed since last update.

Postgresでパスワードを忘れました。

やばいやばいと思いつつ、アンインストールしなきゃかなぁ...ヽ(´Д`ヽ)(/´Д`)/イヤァ~

とか思っていたら、意外となんとかなりました。

環境は

- Vagrant 1.6.5

- Virtual Box 4.3.16

- CentOS6.5

- Postgres: psql 8.4.20, server 9.3

です。


アクセス権限の変更 & パスワードなしでのログインを可能に


アクセス権限ファイルを修正

まずはpg_hba.confを探して編集します。


探す

$ sudo find / -name pg_hba.conf

-> /var/lib/pgsql/9.3/data/pg_hba.conf


編集する

$ sudo vi /var/lib/pgsql/9.3/data/pg_hba.conf

---
host all all 127.0.0.1/32 md5
もしくは
host all all 127.0.0.1/32 password
こんな感じな行を下の様に
↓↓↓↓

host all all 127.0.0.1/32 trust


ローカルホスト(127.0.0.1/32)では、パスワード指定なくてもtrustするからログインできますよ。って感じです。


Postgres を再読み込み

$ sudo /etc/rc.d/init.d/postgresql-9.3 reload


パスワードを変更する

PgAdminなりpsqlなりで、postgresユーザーでログイン出来るようになってます。

そしたら、パスワードを変更しちゃえばいいです。

$ psql -U postgres

postgres=# \password
postgres=# alter role postgres with password 'パスワード文字列';
postgres=# \q


パスワードなくてもいいよ設定をもどす

pg_hba.confファイルのtrustをpasswordなりmd5なりに戻して再読み込み。


References