ユーザpostgresでなく、自分のユーザー名でPostgreSQLが起動・終了できるように環境構築する

例えば、自分しか使わないPCにPostgreSQLをインストールし、個人用データベースなど使うときだけ起動したい場合など、ユーザpostgresではなく自分のユーザー名でPostgreSQLを起動・終了できると便利なことがある。

このためには、最初にinitdbでPostgreSQLクラスタを構築する際、「--username=(自分のユーザー名)」を指定してinitdbすることで、ユーザpostgresではなく自分のユーザー名で構築するとよい。

$ ./initdb --pgdata=/usr/local/pgsql/data --username=testnoda

          :
          :

Success. You can now start the database server using:

    ./postgres -D /usr/local/pgsql/data
or
    ./pg_ctl -D /usr/local/pgsql/data -l logfile start

$

これで、自分のユーザー名からPostgreSQLが起動できるようになる。

$ whoami
testnoda
$ ./postgres -D /usr/local/pgsql/data
LOG:  database system was shut down at 2012-12-09 11:45:57 JST
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

          :
          :

注意点として、pgadminから接続するときも、自分のユーザー名で接続する必要がある。
以下の接続を新規作成した例では、「ユーザー名」のところは、デフォルトではpostgresだが、自分のユーザー名でinitdbをしたから自分のユーザー名になっている。