vine-users ML アーカイブ



[vine-users:074701] Re: postgresql のホームディレクトリー

  • From: HOTTA Michihide <hotta@xxxxxxxxxxxxxx>
  • Subject: [vine-users:074701] Re: postgresql のホームディレクトリー
  • Date: Wed, 14 Jun 2006 14:21:55 +0900
堀田@長崎市です。

From: "Y.Tamura" <tamura@xxxxxxxxxxxxxxxx>
To: vine-users@xxxxxxxxxxx (vine-users ML)
Date: Wed, 14 Jun 2006 11:03:51 +0900
Subject: [vine-users:074696] Re: postgresqlのホームディレクトリー

> 次にroot権限で/etc/rc.d/init.d/postgresql start とし、
> postgresqlを起動したところ"データーベースを初期化しています"
> との表示が出ました。
> 
> ここで質問なのですが、

疑問に感じたら、まずは中身を見てみようという心がけがあると、一歩
先に進めると思います。

$ file /etc/rc.d/init.d/postgresql
/etc/rc.d/init.d/postgresql: Bourne shell script text executable

ということで、これはシェルスクリプト(要するにテキストファイル)
なのでエディタで開けます。

> この表示はインストール時にできていた/var/lib/pgsql/dataの領域
> を init db によって初期化しているということなのでしょうか?

$ vi /etc/rc.d/init.d/postgresql
して 
/initdb(initdbを検索)
n(次候補を検索)
で検索すると、まさに /usr/bin/initdb コマンドを呼び出しているとこ
ろが見つかると思います。
(ちなみに :q! で vi を強制終了できます)

  # vi に自信(何)がなければ
  # $ grep initdb /etc/rc.d/init.d/postgresql でも可。

> そうだとすればこのdata領域のスーパーユーザーはrootということに
> なるのでしょうか?

        su -l postgres -s /bin/sh -c \
       "/usr/bin/initdb --pgdata=$PGDATA -E EUC_JP --no-locale \
        > /dev/null 2>&1" < /dev/null

という感じで、postgres ユーザで initdb されてますね。

$ su - (root以外でログインしている場合)
$ su - postgres (本当は sudo を覚えてほしいですが)
$ psql -l

でデータベースの所有者が見れます。

-- 
HOTTA Michihide <hotta@xxxxxxxxxxxxxx>