无法从服务器外部访问PostgreSQL
我的服务器上已经有2个PostgreSQL数据库实例,但是我没有配置它们。这两个数据库都在Windows Server上作为服务提供。有一个列“登录为”,其中PostgreSQL服务的值是“网络服务”。
我创建了另一个PostgreSQL实例,并通过pg_ctl.exe将其添加到服务中。一切都与其他服务完全一样。一个不同的是,“登录为”的值设置为“。\ postgres”。如果我将其更改为“网络服务”,那么我会收到服务启动中的下一条消息:
本地计算机上的“servicename”服务已启动然后停止。如果某些服务未被其他服务或程序使用,则会自动停止。
如果设置为'。\ postgres'或'Local System',则可以启动数据库,我可以通过pgAdmin访问它(如果它在本地服务器上)。但我无法从服务器外部访问此数据库。
在postgresql.conf中我只设置listen_addresses和port。
问题可能出在路由器上,但我想知道这个“登录为”并不是问题的根源。
答案 0 :(得分:1)
应该在pg_hba.conf中明确允许来自外部IP的访问 - http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
答案 1 :(得分:0)
我无法通过网络服务'启动PostgreSQL服务的问题as'登录为'是由于缺少此用户的数据文件夹权限。我刚刚添加了网络服务'在具有完全控制权限的“安全”选项卡中,这解决了这个小问题。
但是,当我无法从服务器外部访问我的数据库时,问题是由网络设置引起的。我配置了我的路由器,现在一切正常。