![](/img/trans.png)
[英]psql: no pg_hba.conf entry for host, could not connect to server
[英]How to configure securely pg_hba.conf postgresql.conf to connect to postgresql database server
我想配置我的DigitalOcean Postgresql數據庫,以便在家中使用pg_dumb ,但無法正常工作:
它與pg_hba-conf一起工作:
host all all all md5
和在postgresaql.conf中
listen_addresses = '*'
但是我不想使用“ all”和“ *”,這是不安全的。
我認為,在閱讀Postgresql文檔( pg_hba.conf和authentication等)之后,我應該在這兩個文件中使用我的IP:
pg_hba.conf: host all all xxx.xxx.xx.xx/32 md5
postgresql.conf: listen_addresses = 'localhost,xxx.xxx.xx.xx'
但是我不明白這個問題:
listen_addresses='*'
,那么我在pg_hba.conf中放置什么IP都沒有關系! 它可以與任何 ip¿?¿? 例如host all all 113.147.107.52/0 md5
而且,如果我在postgresql.conf中放置listen_addresses='localhost,[my_IP]'
,則無法正常工作: connection to database "c..ion" failed: could not connect to server: Connection refused
。
在[my_IP]
,我輸入了從ipecho.net獲得的信息,該IP是否正確?
這是pg_hba.conf,最后一個條目是我最想讓我訪問的內容
# Database administrative login by Unix domain socket
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all rails peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# For copy from home with pg_dumb, this IP is random: all IPs allow me to execute pg_dum if in listen_address='*'
host all all my_ip_from_ipecho.net/32 md5
我想我需要更多的IP知識,除了我絕對迷路了
(PD:最后,我假設我將在服務器中執行pg_dump,然后從家用PC上使用scp
復制這些備份文件。但是我想了解發生了什么以及它如何工作)
非常感謝
如果要在postgresql.conf中指定IP地址,則必須配置客戶端將來自的所有IP地址(在這種情況下,如果使用的話,包括您的PC IP或VPN)。
這就是為什么當您使用“ *”時它可以工作的原因,因為它會監聽來自所有ip(包括您的ip)的客戶端。
pg_hba.conf將充當防火牆,因此您也需要在此配置您的入口。
在您的情況下,我認為最好使用listen_addresses ='*'並在pg_hba中配置ip adrresses,因為當您想要更改參數listen_addresses時需要重新啟動。
pg_hba.conf: host all all xxx.xxx.xx.xx/0 md5
postgresql.conf: listen_addresses = '*'
請告訴我是否需要進一步的幫助來配置pg_hba。
祝好運!
注意:有關listen_adresses參數的更多信息http://www.postgresql.org/docs/9.4/static/runtime-config-connection.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.