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