我已经读过,为了能够远程访问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实例上。
答案 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掩码......
此致