远程访问PostGIS

4
在过去的三到四个月里,我一直在本地部署PostGIS,但现在我刚拿到了一台服务器来扩展我的开源冒险。我已经在我的Windows服务器上安装了Postgres/gis,并且它正常运行,但是如何从我的桌面电脑(通过QGIS)连接它呢?我查找了“远程访问Windows Server上的PostGIS”等主题的帖子,但实际上没有找到任何具体的解决方案。
我大致了解我必须编辑一些Postgres配置文件以允许远程访问,但是那些有关此操作的线程都提供了不同的解决方案,让我非常困惑!

这是一个相当大的问题,与 GIS 没有直接关系。配置 RDMS 进行远程访问以及所有相关的身份验证、授权和安全问题都不应该被轻视。我建议您至少找一本 PostgreSQL 管理的书籍来学习。 - Sean
2个回答

2
简而言之,是的。这是内置在PostgreSQL使用的IP协议中的。
但是,这部分取决于您的网络。您的Windows服务器是否具有静态IP或DNS名称(例如,yourname.com)?如果您的服务器具有动态IP,请尝试使用http://dyn.com/dns/之类的工具。此外,如果您的服务器位于防火墙或路由器后面,则可能需要使用端口转发将PostgreSQL端口(通常为5432)暴露给外部流量。
设置PostgreSQL / PostGIS方面要容易得多。有很多网络资源可以告诉您如何启用对PostgreSQL数据库的远程连接(例如this)。基本上,您需要编辑您的postgresql.confpg_hba.conf文件,并重新启动和/或刷新您的服务器。
要从QGIS连接,请在“主机”中使用DNS名称或IP地址创建新连接。我经常使用QGIS连接到远程服务器。

我已经更改了postgresql.conf和pg_hba.conf文件,我的服务器管理员说我们路由器上的5432端口已经开放,但我仍然无法从QGIS连接到远程Postgres。还有其他想法吗? - geomiles
我可以从经验中说,这可能需要一段时间来设置,我也需要一个服务器专家来帮助设置。确保您首先可以从另一台计算机连接到您的内部网络,然后尝试从网络外部连接,以查看端口是否正确转发到服务器。 - Mike T

1

特别注意以下内容

listen_addresses='*'

在postgresql.conf中进行配置。

默认情况下,它只允许本地连接,您需要添加“*”以允许来自任何计算机的连接。


listen_addresses 告诉 PostgreSQL 要监听哪个 IP 地址,而不是要接受来自哪些机器的连接。 - Sean
是的,但请仔细检查一下,如果您只接受本地连接,则无论您在ph_hba.conf上如何配置,都无法远程连接。 - acanimal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接