Jin*_*Jin 257 postgresql php pg-hba.conf
您好,我正在尝试运行发送给我的网站,但这样做后出现此错误
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
Run Code Online (Sandbox Code Playgroud)
谷歌搜索后,它说我只需要在 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
Run Code Online (Sandbox Code Playgroud)
但这样做后,错误仍然存在。我重新启动了我的 XAMPP 服务器几次,但没有出现任何更改。提前致谢
小智 308
在您的 中添加或编辑以下行postgresql.conf:
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
将以下行添加为pg_hba.conf. 它允许所有用户使用加密密码访问所有数据库:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud)
在service postgresql restart为您的设置添加此 with或等效命令后重新启动 Postgresql 。
小智 29
此解决方案适用于 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
Run Code Online (Sandbox Code Playgroud)
然后重启postgresql服务
/etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)
小智 18
我解决这个问题的方法是:
添加如下行pg_hba.conf:
hostnossl all all 0.0.0.0/0 trust
Run Code Online (Sandbox Code Playgroud)
这在 中进行了修改postgresql.conf,如图所示:
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
我让这个实例在Azure的 VM 中的Centos 7.3和Postgres 9.5上运行,鉴于这是一个 POC(概念证明),您不会希望在实际生产环境中没有 SSL 的情况下进行连接。
为了连接到我在 macOS Sierra上使用pgAdmin 4的实例。
小智 9
全新 Postgres 9.5 安装,Ubuntu。
关键是本地连接类型,因为 psql 使用域套接字连接。
pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local all all md5
host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud)
下面的内容对我有用:(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
Run Code Online (Sandbox Code Playgroud)
相信
无条件允许连接。此方法允许任何可以连接到 PostgreSQL 数据库服务器的人以他们希望的任何 PostgreSQL 用户身份登录,而无需密码或任何其他身份验证。
MD5
要求客户端提供双 MD5 哈希密码进行身份验证。
请参阅此处了解更多信息
小智 9
就我而言,我遇到了这个问题,我无权编辑服务器上的任何conf文件(.NET连接到DigitalOcean上的托管数据库),因此其他答案不是一个选项。
主机向我提供了一个连接 URL,末尾postgresql://有一个选项。在添加到翻译后的.NET connectionString?sslmode=之前,我遇到了完全相同的错误。"SSL Mode=Prefer;Trust Server Certificate=true;"
这对我或你来说可能不是最佳解决方案,但我想指出这可能是连接字符串而不是服务器配置的问题。
小智 6
在底部添加以下行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
小智 6
Debian 用户使用说明。
以 posgres 用户身份登录:
$ sudo su - postgres
Run Code Online (Sandbox Code Playgroud)
通过查询数据库获取pg_hba.conf的位置:
$ psql -c "SHOW hba_file;"
hba_file
-------------------------------------
/etc/postgresql/11/main/pg_hba.conf
(1 row)
Run Code Online (Sandbox Code Playgroud)
打开 pg_hba.conf:
nano /etc/postgresql/11/main/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)
在显示“将您的实际配置放在这里”的地方添加配置:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud)
注销您的用户:
$ exit
logout
Run Code Online (Sandbox Code Playgroud)
重新启动您的 postgres 服务器以使更改生效:
$ sudo systemctl restart postgresql
Run Code Online (Sandbox Code Playgroud)