You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无法从Elastic Beanstalk上的Tomcat连接AWS RDS PostgreSQL数据库

解决PostgreSQL认证类型10不支持的问题

错误原因

这个错误是因为你的AWS RDS PostgreSQL数据库使用了**SCRAM-SHA-256(认证类型10)**作为默认认证方式,但你项目中使用的PostgreSQL JDBC驱动版本过旧,不支持这种认证机制。新版本PostgreSQL(10及以上)默认启用SCRAM-SHA-256,而老版本驱动(42.2.0之前)仅支持MD5认证。


解决方案

1. 升级PostgreSQL JDBC驱动版本

这是最推荐的解决方案,既安全又适配新认证机制:

  • 确保使用42.2.0及以上版本的PostgreSQL JDBC驱动(从该版本开始支持SCRAM-SHA-256),建议使用最新稳定版(如42.6.0)。
  • 若使用Maven管理依赖,修改pom.xml:
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.6.0</version>
    </dependency>
    
  • 若手动导入jar包,下载对应版本的jar文件,放入项目WEB-INF/lib目录后,重新打包WAR包部署到Elastic Beanstalk。

2. 优化数据库连接代码(可选)

你的连接逻辑可以调整为更规范的写法,避免URL参数中密码的特殊字符转义问题:

if (System.getProperty("RDS_HOSTNAME") != null) {
    try {
        Class.forName("org.postgresql.Driver");
        String dbName = System.getProperty("RDS_DB_NAME");
        String userName = System.getProperty("RDS_USERNAME");
        String password = System.getProperty("RDS_PASSWORD");
        String hostname = System.getProperty("RDS_HOSTNAME");
        String port = System.getProperty("RDS_PORT");
        // 仅保留必要的URL参数,用户名密码通过重载方法传递
        String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbName + "?sslmode=require";
        Connection con = DriverManager.getConnection(jdbcUrl, userName, password);
        return con;
    } catch (ClassNotFoundException | SQLException e) {
        throw e;
    }
}

3. 降级RDS认证方式(不推荐,仅作为临时方案)

如果暂时无法升级驱动,可修改RDS参数组切换回MD5认证:

  • 登录AWS控制台,进入RDS参数组,创建自定义参数组(不要修改默认参数组)。
  • 在自定义参数组中,将password_encryption参数设置为md5,保存修改。
  • 将RDS实例关联到该自定义参数组,重启RDS实例。
  • 重启后,必须重置数据库用户的密码(原密码是SCRAM加密的,重置后才会用MD5重新加密)。

额外检查

如果升级驱动后仍有问题,确认:

  • RDS安全组已允许Elastic Beanstalk环境的安全组/IP段访问5432端口。
  • WAR包中确实包含了新版JDBC驱动(解压WAR包检查WEB-INF/lib目录)。

内容的提问来源于stack exchange,提问作者Eitan Rabinovitch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:42:48