作者:IT邦德
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g OCP/OCM、
Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007
微信:jem_db
QQ:2243967774
详情关注公众号:IT邦德
QQ群:168797397、587159446
前言
目前PG的最新版本已经更新到了13.3,在连接客户端的时候,有authentication method 10 not supported这样的报错,故整理了以下参数文件的解读及处理方式,供大家参考
1.现象
PG 13.3版本客户端连接报如下错误
authentication method 10 not supported
查看官网说明,总结出如下解决方案
2.处理方法
2.1 查看版本
postgres=# select version();
postgres=# show server_version;
2.2 查看用户加密算法
从上图可以看出,最新的PG13.3加密算法已做了更改,故需要调整参数文件
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5
local replication all trust
说明如下:
每一行的格式为:
连接方式 连接的数据库 连接的用户 连接的主机IP 认证方式
【连接方式】
local
这条记录匹配通过 Unix 域套接字进行的联接企图
host
这条记录匹配通过TCP/IP网络进行的联接尝试
【认证方法】
trust:无条件地允许联接,不需要口令
reject:联接无条件拒绝,常用于从一个组中"过滤"某些主机
md5:要求客户端提供一个 MD5 加密的口令进行认证
password:高级的加密方式使用(PG13.3需要用这种方式scram-sha-256)
2.3 修改参数文件如下
host all all 0.0.0.0/0 password
##重新加载配置文件
postgres=# SELECT pg_reload_conf();
postgres=# SELECT name,setting,source,enumvals FROM pg_settings WHERE name = 'password_encryption';
再次客户端连接OK
本文如有错误或不完善的地方请大家多多指正,留言或 QQ 皆可,您的批评指正是我写作的最大动力!