PostgreSQ 連線問題 FATAL: no pg_hba.conf entry for host
阿新 • • 發佈:2019-01-29
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:
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”