RDS连接失败的排查方法

更新时间: 2024-11-21 17:14:12

本文主要介绍如何排查无法连接RDS实例的问题。

概述

您可以从以下五个方面排查问题:

排查流程图

步骤一:检查实例状态和实例连接信息

  1. 登录云数据库RDS控制台,在实例列表中查看实例状态,确认实例状态正常,排查实例状态异常或者被锁定等问题,若实例被锁定,请参见MySQL实例空间满后自动锁定的排查方法。在实例锁定期间,应用无法对RDS数据库进行读写操作。如果业务允许,可尝试重启实例,请谨慎操作。

  2. 在连接数据库的代码或工具中,检查连接数据库的信息是否正确(确认内网和外网地址),详情请参见如何连接RDS数据库

步骤二:检查白名单设置正确

确保已将正确的本地设备IP地址添加到RDS的IP白名单。请在数据库的白名单中临时添加0.0.0.0/0,如果设置后可以正常访问,说明是白名单设置存在问题。请删除0.0.0.0/0白名单,将正确的IP添加到白名单中。白名单的注意事项请参见以下内容,具体添加白名单操作,请参见设置白名单

  • 由于在数据安全性 > 白名单设置中只有默认地址127.0.0.1。该地址表示不允许任何设备访问RDS实例。因此需在白名单中添加对端ECS实例的IP地址。

  • 白名单设置成了0.0.0.0,正确格式为0.0.0.0/0

    说明

    0.0.0.0/0表示允许任何设备访问RDS实例,请谨慎使用。

  • 请检查是否开启了高安全白名单模式,具体请参见高安全白名单模式。如果已开启,请进行以下检查:

    • 如果使用的是专有网络的内网连接地址,请确保ECS内网IP地址添加到了专有网络的分组。

    • 如果使用的是经典网络的内网连接地址,请确保ECS内网IP地址添加到了经典网络的分组。

    • 如果通过公网连接,请确保设备公网IP地址添加到了经典网络的分组(专有网络的分组不适用于公网)。

  • 您在白名单中添加的设备公网IP地址可能并非设备真正的出口IP地址。原因如下:

步骤三:检查数据库性能

通过查看RDS实例的性能监控,确定是否存在实例资源不足的情况。

  • 当前数据库的连接数检查。

    1. 连接数满通常是由于空闲连接过多或活动连接过多,请参见主实例规格列表,确认实例规格对应的最大连接数据。

    2. 检查代码中的连接设置是否合理,是否存在大部分连接没有及时关闭,进而消耗RDS资源,最终引发连接数满的情况。具体原因及解决办法请参见处理RDS MySQL连接数被打满的情况处理RDS PostgreSQL实例连接数过多

  • 如是业务正常增长,建议您对实例进行配置升级。

    说明

    升配过程中可能会有一次30秒左右的闪断,建议用户做好连接重连机制,保证用户业务的正常运行。更多详情,请参见使用限制

  • 检查网络流量是否正常,是否存在网络流量占用很高的情况。如存在此情况,请参见查看慢日志明细,查看慢日志,根据查询结果优化慢SQL。

  • 其他性能问题,请参见解决CPU、内存、空间、IOPS使用率偏高的问题

步骤四:检查客户端

您可以尝试使用其他方式连接数据库,确认是否是当前客户端工具问题,详情请参见:

ECS实例无法通过内网访问RDS实例

若是ECS实例无法通过内网访问RDS实例,您可以参见解决无法连接实例问题解决问题。

适用于

云数据库RDS

上一篇: 购买/付费 下一篇: 迁移/同步/订阅
阿里云首页 云数据库 RDS 相关技术圈