外网无法连接RDS MySQL或MariaDB:如何正确填写本地设备的公网IP地址

在您通过公网访问RDS MySQL或MariaDB前,需要将本地设备或外部服务器的公网IP地址添加到RDS白名单中。本文介绍如何确定公网IP地址。

问题描述

已经将本地IP地址添加到白名单中,但仍然无法连接。

以上很可能是因为您的公网IP地址不正确,或者本地公网IP地址变动。

说明

本文只适用于ECS以外的设备访问RDS实例的情况。如果是ECS实例访问RDS实例,可以在ECS实例的详情页面查看准确的公网IP地址和内网IP地址。

注意事项

如果您发现您本地设备的公网IP地址会变化,而且建立的连接是用于生产环境,则建议您改为使用内网连接,或者在白名单中配置合理的公网IP段,确保不会因为IP地址改变而断连。

定位本地设备的公网IP地址

  1. 将公司的公网网段或者0.0.0.0/0添加到RDS MySQL或MariaDB实例的白名单,具体操作请参见通过客户端、命令行连接RDS MySQL实例

    重要

    0.0.0.0/0表示允许任何设备访问RDS实例,有安全风险,请谨慎使用。如果使用,应当及时从白名单中删除。

  2. 在本地设备,使用客户端或命令行连接到RDS实例。

    mysql -hRDS连接地址 -u账户 -p密码 -P3306

  3. 查询进程信息。

    show processlist

    如下图所示, show processlist 所在的行对应的 Host 就是本地设备的真实出口 IP 地址。

  4. 将步骤 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分钟左右才会生效。

    除了白名单之外,还有很多因素会导致您无法连接数据库,详情请参见解决无法连接实例问题