我正在尝试运行一个发送给我的网站,但这样做之后出现了这个错误
连接到 PostgreSQL 服务器:致命:主机“4X.XXX.XX.XXX”、用户“userXXX”、数据库“dbXXX”没有 pg_hba.conf 条目,C:\xampp\htdocs\xmastool\index.php 中的 SSL 关闭第 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 服务器几次,但没有任何变化。
我需要改变pg_hba.conf
什么?
在您的 中添加或编辑以下行
postgresql.conf
:将以下行添加为
pg_hba.conf
. 它允许使用加密密码的所有用户访问所有数据库:添加此
service postgresql restart
命令或设置的等效命令后重新启动 Postgresql。对于酿造,brew services restart postgresql
此解决方案适用于 IPv4 / IPv6:
编辑 pga_hba.conf 文件
pga_hba.conf
在您喜欢的编辑器中打开文件:附加到 pga_hba.conf 文件
将以下行追加到
pga_hba.conf
文件末尾:退出并保存您喜欢的编辑器。
重启服务
postgresql
使用以下命令重新启动服务:我解决这个问题的方法是:
在中添加如下行
pg_hba.conf
:并在 中进行了修改
postgresql.conf
,如图所示:我让这个实例在Azure的 VM 中的Centos 7.3和Postgres 9.5上运行,因为这是一个 POC(概念证明),您不会希望在实际生产环境中没有 SSL 进行连接。
要连接到我在 macOS Sierra上使用pgAdmin 4的实例。
全新 Postgres 9.5 安装,Ubuntu。
关键是本地连接类型,因为 psql 使用域套接字连接。
pg_hba.conf
给 Debian 用户的说明。
以 posgres 用户身份登录:
通过查询数据库获取 pg_hba.conf 的位置:
打开 pg_hba.conf:
在显示“将您的实际配置放在这里”的位置添加配置:
注销您的用户:
重新启动您的 postgres 服务器以使更改生效:
在底部添加以下行
pg_hba.conf
:hostnossl all all 0.0.0.0/0 md5
添加/修改以下行
postgresql.conf
:listen_addresses = '*'
确保正在连接的用户有密码:(示例连接用户名为
postgres
)一个。使用用户帐户运行以下
psql
命令:postgres
sudo -u postgres psql postgres
湾。设置密码:
# \password postgres
这对我有用:(pg_hba.conf)
参考这里更多
当我尝试使用 SSH 隧道连接到本地数据库时,我遇到了同样的错误。我通过将主机名从更改为来解决
localhost
它127.0.0.1
。就我而言,我遇到了这个问题,我无权编辑服务器上的任何 conf 文件(.NET 连接到 DigitalOcean 上的托管数据库),所以其他答案不是一个选项。
主持人为我提供了一个
postgresql://
连接 URL,最后有一个?sslmode=
选项。"SSL Mode=Prefer;Trust Server Certificate=true;"
在添加到翻译后的.NET connectionString之前,我得到了完全相同的错误。这可能不是我或您的最佳解决方案,但我想指出这可能是连接字符串而不是服务器配置的问题。
就我而言,我必须按照错误信息的建议添加确切的行。无法通过添加具有所有 IP 的“所有”用户作为规则来绕过它。现在是这样的:
CentOS 7 上的 PosgreSQL 10.5。