connect to PostgreSQL server: FATAL: no pg_hba.conf entry for host "4X.XXX.XX.XXX", user "userXXX", database "dbXXX", SSL off in C:\xampp\htdocs\xmastool\index.php on line 37
谷歌搜索之后,它说我只需要在pg_hba.conf文件中为该特定用户添加一个条目即可。
这是我的pg_hba .conf文件。
# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: local dbXXX userXXX md5 host dbXXX userXXX XX.XXX.XXX.XXX md5 host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. #host replication postgres 127.0.0.1/32 md5 #host replication postgres ::1/128 md5
,但是这样做之后,错误仍然存在。我几次重新启动了XAMPP服务器,但没有任何更改。
预先感谢
#1 楼
在您的postgresql.conf
中添加或编辑以下行:
listen_addresses = '*'
将以下行添加为pg_hba.conf
的第一行。它允许使用加密密码的所有用户访问所有数据库:
# TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 0.0.0.0/0 md5
用service postgresql restart
或等效的命令添加后重新启动Postgresql。评论
请注意,要使此方法起作用,必须为用户设置密码:sudo -u <用户名> psql postgres,然后在结果sql提示符下的\ password将提示您设置一个。
– ijoseph
18年5月30日在21:54
添加此选项后,别忘了重新启动postgresql:service postgresql restart
– ammills01
18-10-24在22:50
如果您需要一些额外的安全性来限制到私有域的连接(例如在办公室内部,而不是Internet的其余部分),则可以将第一个数字更改为10、172或192以匹配您的网络:例如172.0。 0.0 / 0而不是0.0.0.0/0
–内特·万纳(Nate Wanner)
19年2月28日在13:49
您还需要添加地址为:: 0/0的行,否则来自IPv6地址的连接仍将被拒绝。
– Herohtar
19-10-18在21:31
请注意,这在安全性方面是最糟糕的做法。尝试使事情精确运行,而不仅仅是避免问题。因此,添加您的服务器IP而不是0.0.0.0/0或至少缩小IP类别
– Mehdi LAMRANI
19-10-19在19:19#2 楼
此解决方案适用于IPv4 / IPv6
nano /var/lib/pgsql/data/pg_hba.conf
最后添加
host all all ::1/128 md5 host all postgres 127.0.0.1/32 md5
,然后重新启动postgresql服务
/etc/init.d/postgresql restart
评论
仅在我使用:: 0/0时有效
–丹格尔
19/12/14在4:11#3 楼
我解决此问题的方法是:
在pg_hba.conf
中添加以下行:
hostnossl all all 0.0.0.0/0 trust
考虑到这是您不希望使用的POC(概念验证),因此我在Azure的VM中的Centos 7.3和Postgres 9.5上运行了该实例在您的实际产品环境中无需SSL即可连接。
要连接到实例,我在macOS Sierra上使用pgAdmin4。评论
不仅SSL ...在任何未经概念证明且可通过网络访问的事物上,您都不信任连接,还需要进行一些身份验证。
– joanolo
17年5月5日在6:44#4 楼
全新安装Postgres 9.5,Ubuntu。
键是本地连接类型,因为psql使用域套接字连接。
# TYPE DATABASE USER CIDR-ADDRESS METHOD local all all md5 host all all 0.0.0.0/0 md5
#5 楼
在pg_hba.conf
的底部添加以下行:
hostnossl all all 0.0.0.0/0 md5
在postgresql.conf
中添加/修改该行:
listen_addresses = '*'
确保正在连接的用户具有密码:(例如,名为postgres
的连接用户)
a。使用psql
用户帐户运行以下postgres
命令:
sudo -u postgres psql postgres
b。设置密码:
# \password postgres
评论
不要将信任用于远程连接
–eckes
18年15月15日在19:57#6 楼
Debian用户说明。
以posgres用户身份登录:
$ sudo su - postgres
通过查询数据库来获取pg_hba.conf的位置:
$ psql -c "SHOW hba_file;" hba_file ------------------------------------- /etc/postgresql/11/main/pg_hba.conf (1 row)
打开pg_hba.conf:
nano /etc/postgresql/11/main/pg_hba.conf
在显示“在此处放置实际配置”的位置添加配置:
# TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 0.0.0.0/0 md5
注销到用户:
$ exit logout
重新启动postgres服务器以使更改生效:
$ sudo systemctl restart postgresql
#7 楼
尝试使用SSH隧道连接到本地数据库时,我遇到了相同的错误。我通过将主机名从localhost
更改为127.0.0.1
来解决了这个问题。#8 楼
下面对我有用:(pg_hba.conf)
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 0.0.0.0/0 trust # IPv6 local connections: host all all ::1/128 trust host all all 0.0.0.0/0 trust
trust
无条件允许连接。此方法允许
可以连接到PostgreSQL数据库服务器的任何人以他们希望的任何
PostgreSQL用户身份登录,而无需密码或任何其他身份验证。 /> md5
要求客户端提供双MD5哈希密码进行
身份验证。评论
谢谢男人,它为我工作,我只需要用不使用密码的信任替换所有的METHOD
–穆罕默德
6月15日4:47#9 楼
查找正确的配置文件:
su - postgres -c "psql -t -P format=unaligned -c 'show hba_file';"
在文件末尾添加以下内容:
local all all peer
然后重新启动PostgreSQL应用程序:
/bin/systemctl restart postgresql*.service
#10 楼
就我而言,我必须添加错误信息建议的确切行。无法通过添加具有所有IP的“所有”用户作为规则来绕过它。现在就像:
CentOS 7上的PosgreSQL 10.5。
# IPv4 local connections: host all all 127.0.0.1/32 md5 host <db_name> postgres <my_client_machine_ip>/32 md5
#11 楼
就我而言,我遇到了无法编辑服务器上的任何conf文件(.NET连接到DigitalOcean上的托管数据库)的情况,因此无法选择其他答案。
主机提供了我一个postgresql://
连接URL,最后有一个?sslmode=
选项。在将"SSL Mode=Prefer;Trust Server Certificate=true;"
添加到翻译后的.NET connectionString中之前,我遇到了完全相同的错误。字符串而不是服务器配置。评论
我有同样的问题。当使用Npgsql连接时,如果数据库需要SSL连接,而您从连接字符串中忽略它,则会收到一个奇怪的pg_hfa.conf错误。
–JamesHoux
12月8日19:55#12 楼
它仅对我有效,仅添加以下配置:
# IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 md5 # IPv6 local connections: host all all ::1/128 md5 host all all 0.0.0.0/0 md5
#13 楼
根据https://docs.bitnami.com/aws/apps/noalyss/administration/configure-pgadmin/的链接。
对于Windows上的PgAdmin 4。我在下面添加了这些行
pg_hba.config:
host all all all md5
,并修改了postgresql.config: br />#14 楼
只需在配置文件中写入以下序列:
const pg = require('pg'), config = require('./db-config'), dbOption = { host : , port : , user : , password :, database : }, pool = new pg.Pool(dbOption) pg.defaults.ssl = true;
就这些了。<br />文件db-config
包含主机,用户,密码和数据库。有了这个小小的改动,它就可以在本地和通过服务(Heroku)中完美运行。经过全面测试。评论
此db-config是什么(和哪里)?它是XAMPP配置文件吗?
–超立方体ᵀᴹ
17年12月12日在16:14
连接到PostgreSQL服务器:严重:主机没有pg_hba.conf条目
您好,我正在尝试运行发送给我的网站,但这样做后出现此错误
评论
您是否重启了PostgreSQL自身,而不仅仅是Web服务器?尝试SELECT pg_reload_conf()。