【报错记录】OpenGauss/磐维数据库连接报:org.postgresql.util.PSQLException: 致命错误: 账户被锁定

前言

目前在搞数据库国产化适配的,这次遇到的是SpringBoot项目应该是密码输错了,导致多次连接失败后账号被磐维数据库给锁了,导致SpringBoot项目再也连不上了报错内容为:

bash 复制代码
2025-09-02 20:37:38.086 [Druid-ConnectionPool-Create-1309638748] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:postgresql://172.16.0.154:17700/****, errorCode 9617, state 28000
org.postgresql.util.PSQLException: [172.16.0.153:52028/172.16.0.154:17700] 致命错误: 账户被锁定
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:614)
        at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:157)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:233)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:53)
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:279)
        at org.postgresql.Driver.makeConnection(Driver.java:568)
        at org.postgresql.Driver.connect(Driver.java:317)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1644)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1710)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2779)

解决方案

由于磐维用的就是OpenGauss,因此只需要找OpenGauss的官方文档即可。

文档地址:设置帐户安全策略 | openGauss文档 | openGauss社区

解决方案就是将失败登录次数改大,然后解锁已经被锁定的用户:

进入数据库,并查看当前失败登录尝试次数

bash 复制代码
# 在安装OpenGauss/磐维数据库的服务器上执行,并切换到omm用户
su omm

# 使用gsql登录进数据库
gsql

# 查看当前登录失败尝试次数
SHOW failed_login_attempts;

目前来看次数只有5次,难怪这么快账号就被锁定了

退出数据库,设置失败登录尝试次数

bash 复制代码
# 退出数据库
\q

# 设置失败尝试次数为100次
 gs_guc reload -D /database/panweidb/data -c "failed_login_attempts=100"

注意!!上面的/database/panweidb/data需要改为你自己的数据库安装路径,需要到data这一层目录,其中必须要包含postgresql.conf这个文件

解锁用户

重新进入数据库,执行:

bash 复制代码
# 重新进入数据库
gsql

# 解锁用户
ALTER USER ${改为你的用户名} ACCOUNT UNLOCK;

# 加锁用户
ALTER USER ${改为你的用户名} ACCOUNT LOCK;

# 再次解锁用户
ALTER USER ${改为你的用户名} ACCOUNT UNLOCK;

第一次解锁不成功,可以尝试手动加锁后再次解锁试试,我反正按照这一套操作下来用户就被完全解锁了,SpringBoot项目也能重新连接成功了。

重启数据库

修改完成后建议重启数据库,不然可能还是不生效,因为我后面又发现好多次用户被锁定的事,还得我自己手动解锁,建议重启数据库

bash 复制代码
gs_om -t stop
gs_om -t start
相关推荐
java_logo1 小时前
Docker 部署 CloudBeaver:轻松搭建网页数据库管理平台
数据库·docker·容器·数据库管理·dbeaver·轩辕镜像·cloudbeaver
李白客2 小时前
AI 数据库落地 NL2SQL:准确率卡在四成,问题在表注释不在模型
数据库
FluxDB2 小时前
FluxDB vs DBX vs DBeaver:GPUI、Tauri、Eclipse 三种技术栈实测
数据库·mysql
杨航 AI3 小时前
JEV的用法
java·前端·数据库
数据库小学妹3 小时前
MySQL分页结果不稳定:唯一键兜底与游标分页
数据库·mysql·dba
风翼靓崽3 小时前
mysql数据备份/恢复
数据库·mysql
贝锐4 小时前
金仓、达梦、TDSQL全适配:向日葵补齐信创数据库层远程运维能力
运维·数据库·信创
xixiaoyunya4 小时前
Redis缓存三大问题实战:穿透、击穿、雪崩,我用一个电商秒杀场景讲清楚
数据库·redis·缓存
这个DBA有点耶5 小时前
Merge还是Materialize?一文讲透MySQL 8.0 CTE底层的执行计划博弈与性能陷阱
数据库·mysql·架构
Thanks_ks6 小时前
MySQL 的 REPEATABLE READ 到底能不能防幻读——从快照读、当前读到 Next-Key Lock
数据库·mysql·innodb·mvcc·锁机制·事务隔离级别·间隙锁