トップページへ

pg_ctlで「データベースクラスタのディレクトリではありません」というエラーになる場合の対処

小粋空間 » PostgreSQL » pg_ctlで「データベースクラスタのディレクトリではありません」というエラーになる場合の対処

PostgreSQLのpg_ctlで「データベースクラスタのディレクトリではありません」というエラーになる場合の対処方法について紹介します。

1.問題点

postgresqlのサーバ起動で

$ pg_ctl start
pg_ctl: ディレクトリ "/var/lib/pgsql/9.6/data" はデータベースクラスタのディレク トリではありません

というエラーになり、サーバの起動ができませんでした。

/var/lib/pgsql/9.6/data

というディレクトリは存在します。

ということで、「データベースクラスタのディレクトリではありません」というエラーになる場合の対処方法について紹介します。

2.対処

postgresユーザで、

$ pg_ctl start

の前に、init_dbを実行します。

以下、実施画面です。

$ initdb
データベースシステム内のファイルの所有者は"postgres"ユーザでした。
このユーザがサーバプロセスを所有しなければなりません。
 
データベースクラスタはロケール"ja_JP.UTF-8"で初期化されます。
したがってデフォルトのデータベース符号化方式はUTF8に設定されました。
initdb: ロケール"ja_JP.UTF-8"用の適切なテキスト検索設定が見つかりません
デフォルトのテキスト検索設定はsimpleに設定されました。
 
データベージのチェックサムは無効です。
 
ディレクトリ/var/lib/pgsql/9.6/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
デフォルトのmax_connectionsを選択しています ... 100
デフォルトの shared_buffers を選択しています ... 128MB
selecting dynamic shared memory implementation ... posix
設定ファイルを作成しています ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
データをディスクに同期しています...ok
 
警告: ローカル接続向けに"trust"認証が有効です。
pg_hba.confを編集する、もしくは、次回initdbを実行する時に-Aオプショ
ン、または、--auth-localおよび--auth-hostを使用することで変更するこ
とができます。
 
Success. You can now start the database server using:
 
    pg_ctl -D /var/lib/pgsql/9.6/data -l logfile start

このコマンドの実行後、サーバの起動ができました。

$ pg_ctl start
サーバは起動中です。
-bash-4.2$ < 2018-07-11 15:50:17.918 JST > LOG:  ログ出力をログ収集プロセスにリ ダイレクトしています
< 2018-07-11 15:50:17.918 JST > ヒント:  ここからのログ出力はディレクトリ"pg_log"に現れます。

« 前の記事へ

次の記事へ »

トップページへ