华为云云数据库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)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家