远程访问postgresql数据库
我需要从运行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
如果您无法自己进行身份validation,则需要授予您的用户对数据库的访问权限
编辑你的
/etc/postgresql/9.1/main/pg_hba.conf
并添加
host all all all md5
(这是为了进行广泛的访问。要进行更严格的控制,请参阅pg_hba.conf文档并根据您的需要进行调整)。
此后您还需要重新加载
invoke-rc.d postgresql reload
我不需要提到这是一个基本配置,现在您应该考虑修改防火墙并提高DBMS的安全性。
如果有的话,这不再起作用了:
主持所有* md5
对此可能的正确行是:
主持所有0.0.0.0/0 md5#ipv4范围
主持所有:: 0/0 md5#ipv6范围
托管所有md5 #all ip
资源
对于消息“服务器没有收听”,发生在我身上的是,我没有删除存档postgresql.conf上的#我的意思是:
#的listen_addresses = ‘本地主机’
至:
的listen_addresses = ‘*’
(对不起我的英语不好)。