首页 > 数据库 >pg系数据库经典报错,no pg_hba.conf entry for host “x.x.x.x“, user “xxx“, database “xxx“,ssl off

pg系数据库经典报错,no pg_hba.conf entry for host “x.x.x.x“, user “xxx“, database “xxx“,ssl off

时间:2024-10-28 11:44:54浏览次数:8  
标签:数据库 xxx 192.168 METHOD host 报错 pg 连接

        上一篇文档述说了pg的一个经典报错“current transaction is aborted, commands ignored until end of transaction block”【经典报错1】,这次再来述说一个pg系数据的经典报错。

        pg系数据库指的是postgre、greenplum、国产数据中的kingbase、gaussdb等等,使用postgre作为基础的数据库,然后出现的数据库。

1、问题描述: no pg_hba.conf entry for host "x.x.x.x", user "xxx", database "xxx",ssl off

在连接pg系数据的过程中,可能会遇到如下图中的报错

2、解决方案

2.1 原因分析

对于该错误,其实可以翻译下,机翻有时候其实不对,大概可以翻译为:pg_hba.conf中,没有对主机“xxx.xxx.x.xxx”,用户"xxx",访问“xxx”数据库的条目。

大白话的意思就是,这个配置文件,没有对来源ip放开访问数据库的入口。

查看下pg数据库服务器上的pg_hba.conf

如果不知道在哪里,可以使用find查找

find / -name "pg_hba.conf"

 

通过cat命令查看即可

cat /var/lib/postgresql/data/pg_hba.conf

注:我这里设置了 host all all all md5 所以任意一个地方都可以连接 

2.2 解决方式

在这里呢,先说一下pg_hba.conf设置主机访问规则,查看官方文档可以看到,大约是7中写法,常见的4中写法如下

local      database  user  auth-method  [auth-options]
host       database  user  address  auth-method  [auth-options]
hostssl    database  user  address  auth-method  [auth-options]
hostnossl  database  user  address  auth-method  [auth-options]

相关参数说明: 

  • local:通过unix域套接字进行连接
  • host:通过tcp/ip进行连接,匹配ssl和非ssl的连接请求(最为常用)
  • hostssl:匹配使用tcp/ip的ssl连接。必须是ssl加密的连接
  • hostnossl:匹配使用tcp/ip,不使用ssl的连接
  • database:匹配的数据库,all则是所有的数据库
  • user:匹配的数据库用户,all表示匹配所有的数据库
  • address:匹配的客户端地址,可以是ip地址、范围,比如:
    • 192.168.1.233/32 表示匹配192.168.1.233这个客户端,可以访问。
    • 192.168.1.0/24 表示匹配192.168.1.0 到192.168.1.255这个范围的ip可以访问(0和255一般不使用)
    • 192.168.0.0/16 表示匹配192.168.1.x - 192.168.255.x这个大范围ip可以访问
  • auth-method:表示验证的方法(trust reject md5 password gss sspi ident peer ldap radius cert pam)常用的几种如下:
    • trust:无条件允许连接(不需要口令)
    • md5:使用md5加密
    • ldap:使用LDAP服务器进行认证
    • cert:使用SSL客户端证书进行认证
# 允许在本机上的任何用户使用 Unix 域套接字(本地连接的缺省)
# 以任何数据库用户身份连接任何数据库
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     trust

# 和上面相同,但是使用的是回环的(loopback)TCP/IP 连接
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             127.0.0.1/32            trust

# 和上面一行相同,但是用的是独立的子网掩码字段
#
# TYPE  DATABASE        USER            IP-ADDRESS      IP-MASK             METHOD
host    all             all             127.0.0.1       255.255.255.255     trust

# 在IPv6上相同。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             ::1/128                 trust

# 和上面相同,但是使用一个主机名(通常包括IPv4 和 IPv6)。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             localhost               trust

# 允许 IP 地址为 192.168.93.x 的任何主机与 "postgres" 数据库相连,
# 用与他们在自己的主机上相同 ident 的用户名标识他自己(通常是他的操作系统用户名)
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    postgres        all             192.168.93.0/24         ident

# 允许来自主机 192.168.12.10 的用户提供了正确的口令之后与 "postgres" 数据库连接。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    postgres        all             192.168.12.10/32        md5

# 允许来自在example.com域里的主机的用户在提供了正确的口令之后与任意数据库连接。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             .example.com            md5

# 如果前面没有其它 "host" 行,那么下面两行将拒绝所有来自 192.168.54.1 的连接请求(因为前面的记录先匹配)。
# 但是允许来自互联网上其它任何地方的有效的 GSSAPI 认证的连接。
# 零掩码引起不考虑主机 IP 的任何位。因此它匹配任何主机。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.54.1/32         reject
host    all             all             0.0.0.0/0               gss

# 允许来自 192.168.x.x 的任何用户与任意数据库连接,只要他们通过 ident 检查。
# 但如果 ident 说该用户是 "bryanh" 且他要求以 PostgreSQL 用户 "guest1" 连接,
# 那么只有在 pg_ident.conf 里有 "omicron" 的映射说 "bryanh" 允许以 "guest1" 进行连接时才真正可以进行连接。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.0.0/16          ident map=omicron

# 如果下面是用于本地连接的仅有的三行,那么它们将允许本地用户只和同名数据库连接。
# 只有管理员和 "support" 角色里的成员例外,他们可以连接到任何数据库。
# $PGDATA/admins 文件列出了那些允许与所有数据库连接的用户名。
# 在所有情况下都需要口令。
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   sameuser        all                                     md5
local   all             @admins                                 md5
local   all             +support                                md5

# 上面最后两行可以合起来写成一行
local   all             @admins,+support                        md5

# 数据库字段也可以使用列表和文件名:
local   db1,db2,@demodbs  all                                   md5

所以可以根据自己的需求,放开所有的ip还是说通过ip/32,ip/24,/16 这种方式放开部分ip 

标签:数据库,xxx,192.168,METHOD,host,报错,pg,连接
From: https://blog.csdn.net/m0_37492923/article/details/143285577

相关文章

  • Navicat连接数据库,报错信息:1045 -Access denied for user 'root'@'localhost'(using p
    错误解析错误信息:无法通过Navicat连接MySQL数据库。原因:MySQL服务未启动。解决方法检查MySQL服务状态打开“服务”管理器(可以在Windows中通过搜索“服务”来找到)。查找MySQL相关的服务,通常名称为MySQL或带有版本号的名称(如MySQL507)。启动MySQL服务如果发现MySQL......
  • PG数据库之事务处理
    PostgreSQL数据库的事务处理是确保数据库操作原子性、一致性、隔离性和持久性(ACID特性)的关键机制。事务处理允许将一系列数据库操作作为一个整体来执行,这些操作要么全部成功,要么在遇到错误时全部回滚,从而保持数据的一致性和完整性。下面将详细介绍PostgreSQL数据库的事务处......
  • 安装Oracle 23ai报错,求大佬指点
    {IDS_OracleConfigDlg_DatabaseConfigFailedMsg}Anerroroccurred whileconfiguringOracleFreedatabase.CheckthelogsatG:\Oracle_23ai\cfgtoollogs\dbcaandtryagain.【G:\Oracle_23ai\cfgtoollogs\dbca】log文件 正在对命令行参数进行语法分析:参数......
  • Watt Toolkit 报错:加速服务启动失败,443端口被 svnhttpsvc (4996) 占用
    问题描述WattToolkit(原名Steam++)启动加速时报错,显示443端口被svnhttpsvc(4996)占用了。svnhttpsvc是VisualSVNServer的一个应用程序,使用HTTPS协议,默认端口为443。在任务管理器(桌面底部任务栏右键打开)中搜索进程svnhttpsvc的PID4996可以看到svnhttpsvc是正......
  • IIS 报错 401.3 的解决方式
    InternetInformationServices(IIS)是Windows自带的一个服务器搭建工具。如果你在配置好一个网站之后打开网页,却发现网页是401错误代码,那么基本就是文件的限权问题。面对这种情况,可以把文件放在不是C盘的地方,或者按照下面的方法修改限权。演示环境Windows1123H2IIS1......
  • 魔力宝贝游戏报错d3drm.dll缺失?专家级修复d3drm.dll缺失方案分享
    当你在运行《魔力宝贝》这款游戏时,如果遇到了“d3drm.dll缺失”的错误提示,这通常意味着游戏无法找到或无法正确加载这个关键的动态链接库文件。d3drm.dll是DirectX的一部分,它对于许多基于3D图形的游戏和应用程序来说至关重要。以下是一些专家级的修复方案,帮助你解决这一问题。......
  • Maya 3D建模软件-3dgraphics.dll报错:从根源解决,恢复流畅创作
    Maya,作为Autodesk旗下的一款顶级3D建模、动画和渲染软件,广泛应用于影视特效、游戏开发、广告制作等多个领域。然而,在使用过程中,用户可能会遇到-3dgraphics.dll报错的问题,这不仅会打断工作流程,还可能影响项目的进度和质量。本文将从报错原因、解决方案以及预防措施三个方面,深入......
  • RAW格式和JPG格式有什么区别
    RAW格式和JPG格式的区别主要包括:1.数据保存形式不同;2.编辑灵活性不同;3.文件大小和存储空间不同;4.颜色深度差异;5.适用场景不同;6.兼容性差异;7.输出质量的对比。其中,数据保存形式的差异是二者之间的核心区别,RAW为未经压缩处理的原始数据,而JPG则是有损压缩后的图像。1、数据保存形......
  • 处理容器报错:[ERROR] .. Get “http://safeline-fvm/skynetinto“: dial tp: lookup s
    雷池社区版(WAF)是基于容器部署的在容器化应用的部署和运行过程中,我们常常会遇到各种报错信息。其中,形如“[ERROR]detect/skynet.go:114Get“http://safeline-fvm/skynetinto":dialtp:lookupsafeline-fvmon127.0.0.11:53:servermisbehaving”以及“panic:Get......
  • autoupgrade升级(二)
    AnalyzeProcessingMode分析处理模式会检查您的数据库是否已准备好升级。仅从数据库读取数据,而不会对数据库执行任何更新。您可以在正常工作时间内使用分析模式运行AutoUpgrade。在源OracleDatabase主目录上以分析模式运行AutoUpgrade程序。使用以下语法在分析模式下......