PostgreSQL数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常:
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host
要解决这个问题,只需要在PostgreSQL数据库的安装目录下找到/data/pg_hba.conf,找到“# IPv4 local connections:”
在其下加上请求连接的机器IP
host all all 127.0.0.1/32 md5
32是子网掩码的网段;md5是密码验证方法,可以改为trust
pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path]
pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [-w] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-o options]
pg_ctl reload [-s] [-D datadir]
pg_ctl status [-D datadir]
pg_ctl kill [signal_name] [process_id]
配置之后重新加载文件:
./pg_ctl reload -s -D /home/arcgis/arcgis/portal/usr/arcgisportal/db/
1、允许本地使用PGAdmin3登录数据库,数据库地址localhost,用户user1,数据库user1db:
1 host user1db user1 127.0.0.1/32 md5
2、允许10.1.1.0~10.1.1.255网段登录数据库:
1 host all all 10.1.1.0/24 md5
3、信任192.168.1.10登录数据库:
1 host all all 192.168.1.10/32 trust
pg_hba.conf修改后,使用pg_ctl reload重新读取pg_hba.conf文件,如果pg_ctl找不到数据库,则用-D /…/pgsql/data/ 指定数据库目录,或export PGDATA=/…/pgsql/data/ 导入环境变量。