PostgreSQL(ポスグレ)がサービスとして起動できない場合の対処方法

状態の確認

✅ PowerShell での実行手順

以下のコマンドをコピー&貼り付けして実行: powershellコピーする編集するGet-Service | Where-Object {$_.DisplayName -like "postgresql*"}

Windowsキー を押す

検索ボックスに PowerShell と入力

出てきた「Windows PowerShell」を右クリック → 「管理者として実行」を選択
※通常起動でも動きますが、権限確認のため管理者モード推奨です

以下のコマンドをコピー&貼り付けして実行:

Get-Service | Where-Object {$_.DisplayName -like "postgresql*"}

✅ 出力結果の見方

Status   Name               DisplayName
------   ----               -----------
Running  postgresql-x64-14  PostgreSQL Server 14
項目意味
StatusRunningなら起動中
Stopped停止状態
Nameサービス名(内部)
DisplayName表示名(サービス一覧での名前)

Stop状態だった。

✅ 次にやるべきこと

以下の手順でサービスを手動起動してみて、エラーメッセージが表示されるか確認します。

サービスの起動コマンド(PowerShellで実行)

Start-Service -Name "postgresql-x64-14"

実行後:

  • 何も表示されず PowerShell が戻ってくれば → 起動成功
  • エラーが出る場合 → その内容を確認・共有してください

実際に出たエラー

画像のエラーメッセージから、PostgreSQL サービスが起動できない直接の原因は “サービスが正常に開始されなかった” ことが原因とわかりました。

原因候補(Windowsで多いもの順)

1. postgresql.conf または pg_hba.conf の設定エラー

  • ファイルの記述ミスや改行の崩れで起動に失敗することがあります。

2. データディレクトリの破損/不整合

  • 強制終了やディスク不良などで WAL ログ(トランザクションログ)に矛盾があると起動できません。

3. 実行ユーザーの権限問題

  • PostgreSQL サービスの実行ユーザーが、データディレクトリにアクセスできていない。

4. 以前の postmaster.pid が残っている

  • シャットダウン失敗時にこのファイルが残り、起動を妨げる。

✅ 対処ステップ(順番に試してください)

① サービスのエラー詳細をイベントビューアで確認

  1. Windows + R → eventvwr.msc
  2. Windowsログ → アプリケーション」を開く
  3. 「エラー」レベル で、postgres.exe や PostgreSQL に関するログを探す
    例: pgsqlコピーする編集するApplication Error / PostgreSQL / pg_ctl / postgres.exe の障害

ここに出ている内容が、もっとも直接的な原因になります。
可能であれば、そのログをスクリーンショットまたは内容コピーで教えてください。


postmaster.pid の削除

  1. 以下のフォルダを開きます: kotlinコピーする編集するC:\Program Files\PostgreSQL\14\data\
  2. postmaster.pid があれば削除
  3. その後、再度 PowerShell でサービスを起動: powershellコピーする編集するStart-Service -Name "postgresql-x64-14"

③ 実行ユーザーの確認とアクセス権付与

  1. services.msc を起動
  2. PostgreSQL サービスを右クリック → プロパティ → 「ログオン」タブ
  3. Local Systempostgres ユーザーになっているか確認
  4. もし postgres ユーザーなら、data フォルダにそのユーザーがフルアクセスできるように権限を設定

pg_resetwal によるWAL修復(破損が疑われる場合)

最終手段です。事前にフォルダをバックアップしてください。

cmdコピーする編集するcd "C:\Program Files\PostgreSQL\14\bin"
pg_resetwal -D "C:\Program Files\PostgreSQL\14\data"

実行後にサービスを起動してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする