最近开始使用PostgreSQL,发现现在9.1版在windows下的安装版本已经是相当好用了,一键安装,然后选择Chinese simplified,登上一会儿就搞定了,进入psql,建数据库、建表、插入测试数据,中文没问题,有用python测试,ok也没问题!
正沉浸在幸福中时传来坏消息,从其他机器连接数据库失败,报错说被拒绝了,赶紧上网求助,原来pg安装后默认不接收其他机器的访问。需要修改两个配置文件(图形界面操作?没有,软件包中的pgadmin III也无此设置)。
这里以我们的局域网为例,安装了pg服务的本机地址为192.168.0.5 ,
一、需要找的pg的data目录(安装时指定的),然后修改postgresql.conf文件,
listen_addresses = '*'
port = 5432
二、需要在pg_hba.conf中添加访问授权,比如从192.168.0.8地址访问,则需要在pg_hba.conf中添加 host all all 192.168.0.1/32 trust
三、重新启动pg的服务测试一下,ok,搞定了终于可以在其他机器上访问了。
可是问题来了,需要访问的每台机器都需要这样添加一项授权,能不能批量添加呢? 试了下ip地址中使用星号,不行,看来不那么简单,还有/32,是什么意思呢? 终于搜到这篇文章讲的很详细,/32表示的就是子网的掩码,这就好办了,修改上面的pg_hba.conf中的设置为
host all all 192.168.0.8/24 trust再次重启pg的服务,用别的机器连接测试,好了局域网内的机器都可以。