已开启公网访问仍无法用MySQL Workbench连接AWS RDS数据库
排查AWS RDS MySQL无法通过Workbench连接的步骤
以下是针对你场景的具体排查点,按优先级尝试:
确认RDS公网访问配置生效
登录RDS控制台,找到目标实例,查看「Connectivity & security」标签下的「Publicly accessible」是否为Yes。有时候修改配置后未点击「Apply changes」会导致设置不生效。核对连接参数准确性
确保Workbench中填写的:- 端点是RDS控制台显示的完整
Endpoint(例如mydb.cxxxxxx.us-east-1.rds.amazonaws.com,不是实例名称) - 端口与RDS实例的「Port」一致(默认3306,若自定义过需对应)
- 用户名、密码无拼写错误,注意大小写敏感
- 端点是RDS控制台显示的完整
测试本地网络连通性
在本地终端执行命令测试端口连通性:telnet <你的RDS端点> 3306或者用nc命令:
nc -zv <你的RDS端点> 3306如果连接超时,说明本地网络(防火墙、公司代理、家庭路由器)拦截了3306端口,需要调整本地网络规则,或者尝试切换到手机热点测试。
验证RDS实例状态与账号权限
- 确认RDS实例状态为
available,若处于backing-up、modifying等状态,需等待状态恢复后再尝试连接。 - 通过Elastic Beanstalk实例的SSH登录(EB控制台可生成临时密钥),在EB实例内执行mysql连接命令:
如果EB实例能连上,说明RDS本身没问题,问题出在数据库账号的访问权限——检查账号是否被限制为仅内网IP访问,需执行以下SQL修改权限(在EB实例的mysql会话中执行):mysql -h <RDS端点> -u <用户名> -p
(注意GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;%允许所有IP访问,生产环境建议替换为你的本地公网IP以提升安全性)
- 确认RDS实例状态为
确认RDS部署的子网类型
检查RDS实例所在的子网是否为公有子网(子网的路由表包含指向Internet Gateway的路由)。若RDS部署在私有子网,即使开启「Publicly accessible」也无法被外部访问。排查DNS解析问题
在本地终端执行:nslookup <你的RDS端点>若无法解析到公网IP,说明本地DNS存在问题,尝试将本地DNS服务器改为公共DNS(如8.8.8.8)后再测试连接。
内容的提问来源于stack exchange,提问作者ayush
相关产品推荐
相关产品推荐

