JMeter连接AWS RDS报java.sql.SQLException无法创建连接问题咨询
JMeter连接AWS RDS MySQL通信链路失败排查方案
1. 网络连通性排查(90%以上该报错属于这类问题)
- 先在运行JMeter的设备上执行端口连通性测试,命令参考:
telnet <RDS实例域名> 3306,如果连接失败直接定位为网络不通问题 - 检查RDS实例的安全组入站规则,确认已放通运行JMeter设备的公网IP(公网访问场景)或VPC内网IP(同VPC访问场景)的3306端口访问权限
- 若JMeter在公网环境运行,确认RDS实例已开启「公共可访问性」权限,未开启公网权限的RDS无法被外网设备访问
- 检查运行JMeter的本地网络是否存在防火墙、代理规则,限制了3306端口的出站访问
2. JDBC连接配置修正
- MySQL 8.0版本的标准JDBC URL格式如下,缺少必填参数会直接导致连接失败:
jdbc:mysql://<RDS实例域名>:3306/<数据库名>?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC- 必须添加
useSSL=false:未配置SSL证书的RDS默认不开启SSL验证,不加该参数会导致握手失败 - 必须添加
allowPublicKeyRetrieval=true:避免密码认证阶段公钥获取失败的问题 - 必须指定
serverTimezone参数,和RDS实例的时区保持一致,推荐先填UTC测试
- 必须添加
- 确认JDBC Driver Class填写为
com.mysql.cj.jdbc.Driver,不要使用旧版本的com.mysql.jdbc.Driver - 确认数据库用户名、密码填写正确,RDS的数据库用户名是创建实例时指定的主用户名,不是AWS平台的账号密码
3. RDS实例配置排查
- 确认RDS实例状态为「可用」,未处于停止、维护、重启状态
- 确认URL中填写的数据库名在RDS实例中真实存在,无拼写错误
- 确认RDS实例参数组中的
max_connections参数未达到上限,没有拒绝新连接的情况
4. JMeter环境排查
- 确认将mysql-connector-java-8.0.25.jar放到JMeter的lib目录后,已经重启JMeter生效
- 确认JDBC Connection Configuration配置的变量名,和JDBC Request中引用的变量名完全一致,大小写无误差
- 删除JMeter lib目录下其他版本的MySQL驱动包,避免版本冲突
- 初次测试时JDBC请求可以先写简单的
select 1语句,排除SQL本身错误导致的连接异常
内容的提问来源于stack exchange,提问作者Shray S
相关产品推荐
相关产品推荐

