ECS通过内网连接RDS时报“ip not in whitelist”错误

问题描述

连接RDS实例时,提示以下其中一种错误信息:

  • ERROR 1045 (HY000): #28000ip not in whitelist

  • ERROR 2801 (HY000): #RDS00ip not in whitelist, client ip is XXX

解决方案

参考以下方法解决问题:

  • 白名单中只有默认地址127.0.0.1。该地址表示不允许任何设备访问RDS实例。需在白名单中添加设备的IP地址,具体操作请参见设置白名单

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

    说明

    该地址允许任何设备访问RDS实例,请谨慎使用。

  • 如果开启了高安全白名单模式,需进行以下检查:

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

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

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

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

  • 如果您将ECS服务器或本地服务器的IP地址填入数据库白名单后,从这些服务器上连接数据库时,仍然提示“ip not in whitelist”错误,则有可能是因为ECS服务器或自建服务器在连接到数据库时经过代理服务器,最终到达数据库的IP地址是代理机的IP地址。此时应该将白名单设置为ECS服务器的出口IP地址,或设置为自建服务器的出口代理服务器IP地址。

适用于

  • 云数据库RDS MySQL版

  • 云数据库RDS SQL Server版

  • 云数据库RDS PostgreSQL版