12.10およびpostgresql 9.1を実行しているDigitalOceanのVPS上のリモートマシンからpostgresqlデータベースにアクセスする必要があります。
どうすればいいですか?ポート5432が閉じていることに気づいたのですが、どうすれば開きますか?
ポート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 documentation を参照し、必要に応じて調整してください)。
今後はリロードも必要です
invoke-rc.d postgresql reload
これが基本的な構成であることは言うまでもありませんが、ファイアウォールを変更してDBMSのセキュリティを改善することを検討する必要があります。
これはもう機能しません。
すべてホスト* md5
これの正しい可能な行は次のとおりです。
すべての0.0.0.0/0 md5#ipv4範囲をすべてホスト
すべてホスト:: 0/0 md5#ipv6 range
ホストすべてすべてすべてmd5 #all ip
「サーバーがリッスンしていない」というメッセージについては、postgresql.confアーカイブの#を消去しないということです。
#listen_addresses = 'localhost'
に:
listen_addresses = '*'
(私の英語でごめんなさい)。
最も投票数が多く受け入れられている回答には、深刻なセキュリティ上の問題があります。正当な理由により、このメソッドはデフォルトで無効になっています。
ssh
でローカルポート転送をより適切に使用する:
ssh -L local_port:localhost:foreign_port user@server
ポート転送を開始します。
ssh -L 5432:localhost:5432 [email protected]
#or
ssh -L 5432:127.0.0.1:5432 [email protected]
(ローカルおよび外部ポートを構成に合わせて変更します)。
その後、ローカルコンピューターからデータベースに直接接続できます。
psql -U db_user -p local_port -l