LoginSignup
5
4

More than 3 years have passed since last update.

PostgreSQLで「could not connect to server」が出て接続できないときの対応

Posted at

問題

PostgreSQLを接続する時に、下記のエラーが出て困ったため、対応を書いておきます。

psql: could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?

私の環境は下記の様になっています。

  • Windows10 64bit
  • PostgreSQL Ver.10.10

解決策

私の環境では、PostgreSQLを再起動すれば解決しました。
ただ、再起動の仕方が「スタートメニュー」->「コンピューターの管理」からPostgreSQLを再起動するやり方だと上手くいきませんでした。

コマンドプロンプトから再起動するやり方だと上手くいきました。

pg_ctl restart -D "C:\Program Files\PostgreSQL\10\data"

上記のパスは、自身のインストールフォルダ、PostgreSQLのバージョンに合わせて変更してください。
コマンドプロンプトは、管理者として実行する必要があります。

下記のような実行結果例が返ってくると思います。

サーバ停止処理の完了を待っています....完了
サーバは停止しました
サーバの起動完了を待っています....2019-11-27 02:23:00.130 JST [4728] LOG: IPv6アドレス"::"、ポート5432で待ち受けています
2019-11-27 02:23:00.130 JST [4728] LOG: IPv4アドレス"0.0.0.0"、ポート5432で待ち受けています
2019-11-27 02:23:00.149 JST [4728] LOG: ログ出力をログ収集プロセスにリダイレクトしています
2019-11-27 02:23:00.149 JST [4728] ヒント: ここからのログ出力はディレクトリ"log"に現れます。
完了
サーバ起動完了

どうやらPostgreSQLを正常に終了しないと、postmaster.pidが残ってしまい起動に失敗するようです。
私は再起動で解決しましたが、解決しない場合、postmaster.pidを削除してから再起動すると良いそうです。
C:\Program Files\PostgreSQL\10\data\postmaster.pidにあります。
上記のパスは、自身のインストールフォルダ、PostgreSQLのバージョンに合わせて変更してください。

他にも、下記の理由により同じエラーが生じることがあるそうです。

  • ポート5432が空いていなかった
  • postgresql.confの設定が足りず他のホストのアクセスを受け付けていなかった
  • pg_hba.confの設定がされていなかった

対応方法は、psql: could not connect to server: Connection refused Is the server running on host "hoge" and accepting TCP/IP connections on port 5432? · DQNEO日記 が詳しいです。

参考文献

PostgreSQL pg_ctlコマンドで起動、停止、起動確認する Windows - Sierエンジニアのブログ

PostgreSQLに接続できず困った - Qiita

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4