无法从服务器外部访问 PostgreSQL

Can't access PostgreSQL from outside of the server

无法从服务器外部访问 PostgreSQL

我的服务器上已经有 2 个 PostgreSQL 数据库实例,但它们不是我配置的。这两个数据库都作为 Windows 服务器上的服务提供。有一列 'Log On As',其中 PostgreSQL 服务的值为 'Network Service'。

我创建了另一个 PostgreSQL 实例并通过 pg_ctl.exe 将其添加到服务中。一切都与其他服务完全相同。一个不同是 'Log On As' 的值设置为 '.\postgres'。如果我将其更改为 'Network Service',那么我会在服务启动时收到下一条消息:

The "servicename" service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.

如果它设置为 '.\postgres' 或 'Local System' 那么数据库可以被启动并且我可以通过 pgAdmin 访问它(如果它在本地服务器上)。但是我不能从服务器外部访问这个数据库。

在postgresql.conf中我只设置了listen_addresses和端口。

问题可能出在路由器上,但​​我想知道这 'Log On As' 不是问题的根源。

应在 pg_hba.conf - http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

中明确允许来自外部 IP 的访问

当我无法使用 'Network Service' 启动 PostgreSQL 服务时出现问题,因为 'Log On As' 是由于该用户缺乏对数据文件夹的权限造成的。我刚刚在具有完全控制权限的安全选项卡中添加了 'Network Service',这解决了这个小问题。

但是,当我无法从我的服务器外部访问我的数据库时,问题是由网络设置引起的。我配置了我的路由器,现在一切正常。