1. 程式人生 > >PostgreSQ 連線問題 FATAL: no pg_hba.conf entry for host

PostgreSQ 連線問題 FATAL: no pg_hba.conf entry for host

PostgreSQ資料庫為了安全,它不會監聽除本地以外的所有連線請求,當用戶通過JDBC訪問是,會報一些如下的異常: 

org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host 

要解決這個問題,只需要在PostgreSQL資料庫的安裝目錄下找到/data/pg_hba.conf,找到“# IPv4 local connections:” 

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/ 匯入環境變數。

另:PostgreSQL預設只監聽本地埠,用netstat -tuln只會看到“tcp 127.0.0.1:5432 LISTEN”。修改postgresql.conf中的listen_address=*,監聽所有埠,這樣遠端才能通過TCP/IP登入資料庫,用netstat -tuln會看到“tcp 0.0.0.0:5432 LISTEN”