我试图远程访问postgres数据库,但postgres服务在修改pg_hba.conf和postgresql.conf后不会启动

时间:2016-03-15 19:45:45

标签: postgresql remote-access postgresql-9.5

我已经读过,为了能够远程访问postgres数据库,必须修改pg_hba.conf以添加客户端身份验证记录,并且还要更改postgresql.conf中的监听地址。详细信息为here

在我做完这两件事后,我的postgres服务不会开始。这是我的日志:

2016-03-14 20:10:48 WET LOG:  invalid IP mask "trust": Unknown host
2016-03-14 20:10:48 WET CONTEXT:  line 81 of configuration file "C:/Program Files/PostgreSQL/9.5/data/pg_hba.conf"
2016-03-14 20:10:48 WET FATAL:  could not load pg_hba.conf

第81行是我添加客户端身份验证记录的地方。

当我尝试启动服务时,使用本地系统帐户是否足够,或者我是否需要登录?我是否需要在postgresql应用程序中配置组角色和登录角色?最后,如果它有所不同,则数据库将托管在Google Compute Engine实例上。

1 个答案:

答案 0 :(得分:3)

从您收到的错误中可以清楚地看到您在postgresql.conf中进行了更改:

listen_addresses = 'localhost'

为:

listen_addresses = '*'

正确。

然后问题出在pg_hba.conf中,你应该有:

host    all         all         192.168.101.20/24    trust

你确定你没有提出类似的东西:

host    all         all         192.168.101.20/trust

host    all         all         192.168.101.20/    trust

host    all         all         192.168.101.20    trust

24是IP掩码,即将使用多少ip作为过滤器。 24掩码意味着将接受任何具有ip 192.168.101.xxx的主机。 32掩码将限制对单个IP的访问。

系统似乎说它发现信任为IP掩码......

此致