华为云云数据库rdsRDS for PostgreSQL通过应用程序访问数据库时提示不支持身份验证_云淘科技

场景一

场景描述

当通过PostgreSQL的任何应用程序连接到RDS for PostgreSQL数据库时,如果客户端不支持scram-sha-256身份验证方法,会出现报错:

Authentication method not supported (Received: 10)

原因分析

出现此问题的原因是使用的客户端版本较低,与数据库使用的加密算法不兼容导致的。

解决方案

检查客户端或客户端驱动程序(如JDBC驱动程序),确保将其更新到最新版本,以确保支持最新的身份验证方法。

如果仍然不支持最新的身份验证,执行下一步。

在实例的参数配置中,修改“password_encryption”参数值为“md5”。

“password_encryption”参数修改后,需要重置密码才能生效。

如果以上方式都不生效,可以修改pg_hba,查看是否有配置认证方式为“scram-sha-256”,如果有则修改为“md5”,保存后重试连接。

场景二

场景描述

当数据库从低版本迁移到高版本后,业务无法连接数据库,报错如下:

unsupported authentication method requested by the server: 10

原因分析

低版本实例的“password_encryption”参数值为“md5”,迁移到高版本后,高版本实例的“password_encryption”参数默认值为“scram-sha-256”,重新修改参数值为“md5”,由于未重置密码,导致密码认证方式失败,业务无法连接。

解决方案

“password_encryption”参数修改后,重置密码使之生效。

场景三

场景描述

使用JDBC应用程序连接到RDS for PostgreSQL数据库时,由于JDBC版本过低不支持scram-sha-256身份验证,在console错误日志中出现如下报错信息:

unsupported frontend protocol 1234.5680: server supports 2.0 to 3.0

原因分析

使用JDBC连接数据库,由于JDBC版本过低,导致无法连接。

解决方案

下载并使用最新版本的JDBC。

父主题: RDS for PostgreSQL

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家