如何解决JMeter连接AWS Postgres数据库时的PoolableConnectionFactory异常
问题原因
该错误是PostgreSQL的访问控制规则拦截了你的连接请求:AWS托管的RDS PostgreSQL默认没有开放非SSL的远程访问权限,且你当前的连接配置没有启用SSL。
解决方案
1. 修改JDBC连接URL开启SSL(首选方案,无需调整RDS配置)
在你原有数据库URL后追加SSL相关参数,修改为以下格式即可:
jdbc:postgresql://Hostname:portnumber/dbname?ssl=true&sslmode=require
如果是测试场景,不需要校验SSL证书有效性,可以追加忽略证书校验的参数:
jdbc:postgresql://Hostname:portnumber/dbname?ssl=true&sslmode=require&sslfactory=org.postgresql.ssl.NonValidatingFactory
修改配置后重启JMeter,重新测试连接。
2. 核对RDS安全组规则
确认运行JMeter的设备的公网IP,已经添加到RDS实例关联安全组的入站规则中,且已放行PostgreSQL对应的端口(默认是5432)。
3. 核对连接参数正确性
- 检查RDS控制台给出的实例连接地址、端口号是否填写正确
- 确认你使用的数据库用户名、数据库名称与RDS中的配置完全一致,PostgreSQL对大小写敏感
- 确认对应账号有目标数据库的访问权限
4. 驱动兼容性适配(仅当前面步骤无效时操作)
你当前使用的是9.1版本的PostgreSQL JDBC驱动,如果你的RDS实例版本高于9.1,建议更换和实例大版本匹配的驱动包,放入JMeter安装目录的lib文件夹后重启JMeter即可。
内容的提问来源于stack exchange,提问作者Manu
相关产品推荐
相关产品推荐

