最近herokuをちょろっとだけ触っています。herokuではPostgreSQLが使われてるのでローカルにもインストールしたんですけど、ちょっと間が空いて、Postgresユーザーのパスワード忘れて困ったのでメモ書きです。環境はOSX 10.6です。
ちょっと検索すると本家MLの過去ログからビンゴなスレッドがありました。要はローカルからの接続時に認証を一旦外してパスワード変更後、元に戻すというものです。認証を設定しているのはpg_hba.confというファイルで僕の手元では下記の位置にありました。md5(パスワード認証)となっている認証形式をtrustに書き換えます。
$ sudo vim /Library/PostgreSQL/9.1/data/pg_hba.conf - local all all md5 + local all all trust
設定ファイルを修正後に再起動すると、postgresユーザでパスワードなしでログインできます。あとはALTER USERでパスワードを変更しましょう。
$ sudo -u postgres ./bin/pg_ctl restart -D/Library/PostgreSQL/9.1/data $ psql -U postgres postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'new password'; postgres=# \q
パスワードの変更が終わったら認証形式を元に戻しておきます。postgresユーザのパスワード忘れても何とか大丈夫なもんですね。
$ sudo vim /Library/PostgreSQL/9.1/data/pg_hba.conf + local all all trust - local all all md5 $ sudo -u postgres ./bin/pg_ctl restart -D/Library/PostgreSQL/9.1/data $ psql -U postgres Password for user postgres:
一番最初に触ったデータベースがPostgreSQLだったので結構好きだったはずなんですけど、何年か使ってないくらいで綺麗サッパリ使い方を忘れていたので、ついでにちょっとだけリハビリです。
$ psql -U postgres postgres=# \l # データベース一覧 postgres=# \c db1 # データベース選択 db1=# \dt # テーブル一覧 db1=# \d table1 # テーブルスキーマ db1=# \d SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database; # 各テーブルのサイズ db1=# \q
herokuのShared Databaseもpsqlから接続できたら良いのになと思う今日この頃です。あとせめて50MBくらい容量欲しい。