1. ホーム
  2. postgresql

[解決済み] "psql: サーバーに接続できませんでした。リモートデータベースへの接続時に「Connection refused」エラー

2022-02-27 16:38:31

質問

リモートサーバーにインストールされたpostgresデータベースに、以下のコマンドで接続しようとしています。

psql -h host_ip -U db_username -d db_name

このようなエラーが発生します。

psql: サーバーに接続できませんでした。接続拒否 サーバーはホスト ""で動作しており、以下を受け入れていますか? ポート5432でTCP/IP接続を行いますか?

  1. Postgresのインストールされているバージョンは9.4です。
  2. ホストオペレーティングシステム: Ubuntu 15.04
  3. クライアントのオペレーティングシステム: Centos 7

すでに以下のことを試しましたが、問題は解決していません。

  1. 編集 pg_hba.conf ファイルをインクルードする

ホストすべてすべて0.0.0.0/0 md5

  1. postgresql.conf」を編集し、listenパラメータを次のように変更しました。

listen_addresses='*'

  1. postgres サービスを再起動しました。
  2. ホストとクライアントでファイアウォールとiptablesを無効にしました。
  3. ローカルでpsqlコマンドを実行して確認したところ、うまくいきました。
  4. 私はこの中で示された2番目の解決策を試してみました 質問 . 実行中 nmap は、次のような出力をしました。

Starting Nmap 6.47 ( http://nmap.org ) at 2015-09-07 18:08 IST Nmap scan report for 10.17.250.250 Host is up (0.0000040s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http

何か見落としているのでしょうか。誰かが助けてくれることを願っています。

解決方法は?

cd /etc/postgresql/9.x/main/

という名前のファイルを開きます。 postgresql.conf

sudo vi postgresql.conf

そのファイルに次の行を追加します。

listen_addresses = '*'

という名前のファイルを開きます。 pg_hba.conf

sudo vi pg_hba.conf

そして、そのファイルに次の行を追加します。

host  all  all 0.0.0.0/0 md5

暗号化されたパスワードで全ユーザーの全データベースにアクセスできるようになる

サーバーを再起動する

sudo /etc/init.d/postgresql restart