问题描述
连接RDS MySQL或MariaDB实例时,提示以下其中一种错误信息:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘XXX’(10038或10060或110)
无法连接到数据库:XXX
解决方案
本文主要介绍以下2种方法:
ECS通过内网无法访问RDS的解决办法
ECS以外的设备无法访问RDS的解决办法
ECS通过内网无法访问RDS的解决办法
检查ECS和RDS实例是否位于不同的地域。如果不同,请参见解决无法连接实例问题。
检查ECS和RDS的网络类型是否不同。如果不同,例如一个是经典网络,一个是专有网络,请参见解决无法连接实例问题。
如果ECS和RDS实例的网络类型都是专有网络,则检查ECS与RDS实例是否位于不同的VPC。如果不同,请参见解决无法连接实例问题。
检查ECS实例的内网IP地址是否已添加到RDS实例的白名单。如果未添加,请参见设置白名单。
检查白名单是否设置成了0.0.0.0,正确格式应该为0.0.0.0/0。
说明该地址允许任何设备访问RDS实例,有安全风险,请谨慎使用。
如果开启了高安全白名单模式,请进行以下检查:
如果使用的是专有网络的内网连接地址,请确保ECS内网IP地址添加到了专有网络的分组。
如果使用的是经典网络的内网连接地址,请确保ECS内网IP地址添加到了经典网络的分组。
检查ECS实例中配置的RDS内网地址和端口是否正确。
说明可能添加了ECS的内网IP地址到RDS的白名单,但是使用的是RDS外网地址。
ECS以外的设备无法访问RDS的解决办法
ECS以外的设备访问RDS时,只能通过外网连接。如果连接失败,解决办法如下所示。
检查是否已设置RDS白名单。如果未设置,请参见设置白名单。
检查白名单是否设置成了0.0.0.0。正确格式为0.0.0.0/0。
说明该地址允许任何设备访问RDS实例,有安全风险,请谨慎使用。
如果开启了高安全白名单模式,需确保设备公网IP地址是添加到了经典网络的分组。
说明专有网络的分组不适用于公网。
如果您已设置白名单,那么连接失败很可能是因为您在白名单中添加的设备公网IP地址并非设备真正的出口IP地址。原因如下所示:
说明关于确认设备公网IP地址的方法,请参见定位本地IP。
公网IP地址不固定,可能会变动。
IP地址查询工具或网站查询的公网IP地址不准确。
检查您使用的连接地址是否为RDS的内网地址。如果是,需要改为外网地址。
适用于
云数据库RDS MySQL版
云数据库RDS MariaDB版