postgresql连接报错Invalid SCRAM client initialization

背景:

本地idea连接正常,测试服务器报错如下图:

PostgreSQL JDBC 驱动是postgresql-42.7.8,项目yml连接方式也是保持干净,但就是一直报这个错误.

原因排查:

postgresql10版本以上支持2种连接认证,1是md5,2是scram-sha-256,查询方式如下:

复制代码
SHOW password_encryption;

原因是服务端配置的是scram-sha-256,但是客户端还在用md5认证,认证方式不匹配.

ps:pgsql有vastbase等变种版本,我的是原始pg14 select version();可以查询版本.

问题解决:

修改认证为md5

  • 修改/var/lib/postgresql/data下pg_hba.conf,注释scram-sha-256,新增md5(有则忽略)

  • 修改/var/lib/postgresql/data下postgresql.conf的认证方式,改为md5

  • 重启数据库,查询确认

    --返回是md5
    SHOW password_encryption;

    --重新设置密码
    ALTER USER postgres WITH PASSWORD 'xxxxx';

  • 重启项目服务

本方式是使用旧的权限认证,最好还是使用新的scram-sha-256,有空研究下原因

scram-sha-256解决思路

1.密码不带特殊符号

  1. 加 JVM 参数禁用 JDK FIPS 模式

-Dcom.sun.security.fips=false

2.重新设置密码

  1. Postgres 版本被魔改,重新安装
相关推荐
星星也在雾里1 小时前
PgBouncer 解决 PostgreSQL 连接数超限 + 可视化监控
数据库·postgresql
雨辰AI3 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
长城20243 小时前
关于MySql的ONLY_FULL_GROUP_BY问题
数据库·mysql·聚合列
常常有4 小时前
MySQL 底层执行原理:输入SQL语句到两阶段提交
数据库·sql·mysql
Mr. zhihao4 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
m0_748839494 小时前
利用天正暖通CAD快速掌握风管数量统计的方法
数据库
随身数智备忘录4 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能
海市公约5 小时前
MySQL更新语句执行全流程:从Buffer Pool修改到二阶段提交
数据库·mysql·binlog·innodb·undo log·二阶段提交·update执行原理
颂love5 小时前
MySQL的执行流程
android·数据库·mysql
程序leo源6 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#