
12.10 と postgresql 9.1 を実行している DigitalOcean の VPS 上のリモート マシンから postgresql データベースにアクセスする必要があります。
どうすればいいですか? ポート 5432 が閉じていることに気づきました。これを開くにはどうすればよいですか?
答え1
ポート5432を開くには、編集し/etc/postgresql/9.1/main/postgresql.conf
て変更します
listen_addresses='localhost'
に
listen_addresses='*'
DBMSを再起動します
invoke-rc.d postgresql restart
今なら接続できます
$ psql -h hostname -U username -d database
認証できない場合は、ユーザーにデータベースへのアクセス権を与える必要があります。
編集する
/etc/postgresql/9.1/main/pg_hba.conf
そして追加する
host all all all md5
(これは広く開かれたアクセスのためのものです。より厳格な制御については、pg_hba.conf ドキュメント必要に応じて調整してください。
今後はリロードも必要になります
invoke-rc.d postgresql reload
これは基本的な構成であることは言うまでもありませんが、ファイアウォールを変更して DBMS のセキュリティを強化することを検討する必要があります。
答え2
これは、以前は機能していたとしても、もう機能しません。
ホスト すべて すべて * md5
この場合の正しい行は次のとおりです:
ホスト すべて すべて 0.0.0.0/0 md5 #ipv4 範囲
ホスト すべて すべて ::0/0 md5 #ipv6 範囲
ホスト すべて すべて すべて md5 #すべて ip
答え3
「サーバーがリッスンしていません」というメッセージは、アーカイブ postgresql.conf の # を削除していないために発生しました。つまり、次のようになります。
#listen_addresses='localhost'
に:
listen_addresses='*'
(英語が下手ですみません)。
答え4
次の構成では、以下を設定する必要があります。
で/etc/postgresql/10/main/postgresql.conf
# Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
で/etc/postgresql/10/main/pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 md5
サーバーを再起動します。
sudo /etc/init.d/postgresql restart