本文主要介绍如何排查无法连接RDS实例的问题。
概述
您可以从以下五个方面排查问题:
排查流程图
步骤一:检查实例状态和实例连接信息
登录云数据库RDS控制台,在实例列表中查看实例状态,确认实例状态正常,排查实例状态异常或者被锁定等问题,若实例被锁定,请参见MySQL实例空间满后自动锁定的排查方法。在实例锁定期间,应用无法对RDS数据库进行读写操作。如果业务允许,可尝试重启实例,请谨慎操作。
在连接数据库的代码或工具中,检查连接数据库的信息是否正确(确认内网和外网地址),详情请参见如何连接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地址。原因如下:
公网IP地址不固定,可能会变动。
IP地址查询工具或网站查询的公网IP地址不准确,解决办法请参见以下内容:
步骤三:检查数据库性能
通过查看RDS实例的性能监控,确定是否存在实例资源不足的情况。
当前数据库的连接数检查。
连接数满通常是由于空闲连接过多或活动连接过多,请参见主实例规格列表,确认实例规格对应的最大连接数据。
检查代码中的连接设置是否合理,是否存在大部分连接没有及时关闭,进而消耗RDS资源,最终引发连接数满的情况。具体原因及解决办法请参见处理RDS MySQL连接数被打满的情况或处理RDS PostgreSQL实例连接数过多。
如是业务正常增长,建议您对实例进行配置升级。
说明升配过程中可能会有一次30秒左右的闪断,建议用户做好连接重连机制,保证用户业务的正常运行。更多详情,请参见使用限制。
检查网络流量是否正常,是否存在网络流量占用很高的情况。如存在此情况,请参见查看慢日志明细,查看慢日志,根据查询结果优化慢SQL。
其他性能问题,请参见解决CPU、内存、空间、IOPS使用率偏高的问题。
步骤四:检查客户端
您可以尝试使用其他方式连接数据库,确认是否是当前客户端工具问题,详情请参见:
ECS实例无法通过内网访问RDS实例
若是ECS实例无法通过内网访问RDS实例,您可以参见解决无法连接实例问题解决问题。
适用于
云数据库RDS