Amazon RDS Multi-AZ MySQL实例登录遇Access denied错误求助
解决Amazon RDS Multi-AZ MySQL访问拒绝问题
1. 检查用户权限的主机范围
- 先登录能正常访问的单实例数据库,执行以下命令查看
admin用户的授权主机:SELECT user, host FROM mysql.user WHERE user='admin'; - 如果查询结果里
host列的值是单实例IP、localhost或特定IP,说明admin用户仅被授权从特定来源访问,而你当前登录的客户端域名(错误信息里的c-11-22-33-44.hsdi1.oh.comacast.net)不在授权范围内。 - 执行授权命令修复:
- 允许从任意主机访问(适合测试或信任环境):
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '你的admin密码'; FLUSH PRIVILEGES; - 仅允许当前客户端域名访问(更安全):
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'c-11-22-33-44.hsdi1.oh.comacast.net' IDENTIFIED BY '你的admin密码'; FLUSH PRIVILEGES;
- 允许从任意主机访问(适合测试或信任环境):
2. 验证RDS安全组配置
- 登录AWS控制台,找到Multi-AZ架构中的两个读取实例,检查它们关联的安全组:
- 确认安全组的入站规则已开放3306端口,允许你的EC2实例私网IP或本地笔记本的公网IP访问。
- 注意:单实例的安全组配置正确不代表读取实例的安全组也同步了,需单独检查每个读取实例的安全组。
3. 确认连接端点正确性
- 连接读取实例时,必须使用该读取实例的专属端点(或RDS只读集群端点),而非写入实例的端点。可在AWS RDS控制台的读取实例详情页获取正确的端点地址。
4. 检查密码一致性
- 确认登录读取实例时使用的密码与写入实例的
admin密码完全一致。Multi-AZ架构下数据会自动同步,但如果最近修改过密码,可等待几分钟让读取实例完成同步后再尝试登录。
内容的提问来源于stack exchange,提问作者aka baka
相关产品推荐
相关产品推荐

