在您通过公网访问RDS MySQL或MariaDB前,需要将本地设备或外部服务器的公网IP地址添加到RDS白名单中。本文介绍如何确定公网IP地址。
问题描述
已经将本地IP地址添加到白名单中,但仍然无法连接。
以上很可能是因为您的公网IP地址不正确,或者本地公网IP地址变动。
本文只适用于ECS以外的设备访问RDS实例的情况。如果是ECS实例访问RDS实例,可以在ECS实例的详情页面查看准确的公网IP地址和内网IP地址。
注意事项
如果您发现您本地设备的公网IP地址会变化,而且建立的连接是用于生产环境,则建议您改为使用内网连接,或者在白名单中配置合理的公网IP段,确保不会因为IP地址改变而断连。
定位本地设备的公网IP地址
将公司的公网网段或者0.0.0.0/0添加到RDS MySQL或MariaDB实例的白名单,具体操作请参见通过客户端、命令行连接RDS MySQL实例。
重要0.0.0.0/0表示允许任何设备访问RDS实例,有安全风险,请谨慎使用。如果使用,应当及时从白名单中删除。
在本地设备,使用客户端或命令行连接到RDS实例。
mysql -hRDS连接地址 -u账户 -p密码 -P3306
查询进程信息。
show processlist
如下图所示, show processlist 所在的行对应的 Host 就是本地设备的真实出口 IP 地址。
将步骤 1中在白名单中添加的 0.0.0.0/0 条目删除,添加上真实的本地公网IP。
常见问题
如何确定是本地公网IP地址变动导致无法连接数据库?
将0.0.0.0/0添加到RDS MySQL或MariaDB实例的白名单中,等待1分钟左右,此时任何设备都可以访问RDS实例。如果测试可以正常连接数据库,请将0.0.0.0/0从白名单中删除,然后添加本地IP地址再进行测试,如果无法连接就代表您当前的本地公网IP地址不是您之前填写的IP地址。
设置了白名单为什么还是不行?
如果确认是本地公网IP地址变动导致的白名单问题,请等待1分钟左右,这是因为设置白名单后需要等待1分钟左右才会生效。
除了白名单之外,还有很多因素会导致您无法连接数据库,详情请参见解决无法连接实例问题。