PostgreSQLエラー「/var/lib/pgsql/data is missing」の原因と解決方法
PostgreSQL 8.4.7のインストール後、早速PostgreSQLを起動しようとすると、
/var/lib/pgsql/data is missing
というエラーが出てしまう。
/var/lib/pgsql/dataディレクトリには、postgresql.conf、pg_hba.confなどPostgreSQLの設定に必要な重要なファイルが入っているので、/var/lib/pgsql/dataが存在しないのであればPostgreSQLが起動できない、という理由は納得できる。
《例》/var/lib/pgsql/data is missingというエラーが出る
[root@nobuneko ~]# /etc/rc.d/init.d/postgresql status
postmaster は停止しています
[root@nobuneko ~]# /etc/rc.d/init.d/postgresql start
/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.
[失敗]
「クラスタを初期化するために『service postgresql initdb』を実行してくさださい」、という警告メッセージに素直に従ってinitdbを実行すると、無事にPostgreSQLサービスを起動できる。
《例》initdbを実行する
[root@nobuneko ~]# service postgresql initdb
データベースを初期化中: [ OK ]
[root@nobuneko ~]#
[root@nobuneko ~]# /etc/rc.d/init.d/postgresql start
postgresql サービスを開始中: [ OK ]
※initdbを実行することで、/var/lib/pgsql/data配下のディレクトリ、ファイルが作成される。PostgreSQLインストール直後に、PostgreSQLを起動する際に「/var/lib/pgsql/data is missing」というエラーメッセージが出る場合は、このようにinitdbを実行していないことに原因があるので、initdbを実行すればこの問題は解決する。
《注》今回例に挙げたPostgreSQL 8.4.7は、CentOS 6.0で、yumでPostgreSQLをパッケージインストールしたもの。