PolarDB内网不能访问数据库的解决方法
当您在使用PolarDB时遇到内网无法访问数据库的问题,可以按照以下步骤进行排查和解决:
1. 检查网络类型是否匹配
- 问题原因:ECS实例和PolarDB集群的网络类型不一致可能导致内网连接失败。例如,ECS实例使用经典网络,而PolarDB集群使用VPC网络。
- 解决方法:
- 确认ECS实例和PolarDB集群的网络类型是否相同。
- 如果两者都使用VPC网络,则必须确保它们位于同一个VPC中。
- 如果ECS实例使用经典网络,而PolarDB集群使用VPC网络,可以通过以下方式解决:
- 推荐方案:将ECS实例从经典网络迁移到与PolarDB相同的VPC网络中。
- 备选方案:启用ClassicLink功能,使经典网络中的ECS实例能够与VPC网络中的PolarDB集群通过内网互通。
2. 检查白名单配置
- 问题原因:如果ECS实例的IP地址未添加到PolarDB集群的白名单中,会导致连接失败。
- 解决方法:
- 登录PolarDB控制台,进入集群管理 > 白名单设置。
- 确保ECS实例的私网IP地址已正确添加到白名单中。
- 如果不确定ECS实例的私网IP地址,可以通过以下命令获取:
- 在ECS实例中执行
curl ifconfig.me
(Linux/macOS)或ipconfig
(Windows)。
- 如果临时需要测试连接,可以将白名单设置为
0.0.0.0/0
,但建议在测试完成后删除该配置以保障安全性。
3. 检查数据库账号权限
- 问题原因:当前使用的数据库账号可能未被授权访问目标数据库。
- 解决方法:
- 登录PolarDB控制台,进入配置与管理 > 账号管理。
- 确认当前数据库账号是否存在,并检查其是否具有访问目标数据库的权限。
- 如果账号不存在,创建一个新的数据库账号并授予相应权限。
- 如果账号存在但权限不足,修改账号权限以允许访问目标数据库。
4. 检查连接地址和端口
- 问题原因:使用了错误的连接地址或端口可能导致连接失败。
- 解决方法:
- 确认您使用的是PolarDB集群的私网地址,而非公网地址。
- 检查连接地址格式是否正确,通常为
pc-xxxxxx.rwlb.rds.aliyuncs.com
。
- 确认端口号是否正确,默认为
3306
。
- 使用以下命令测试网络连通性:
ping <私网地址>
:测试地址是否可达。
telnet <私网地址> <端口>
:测试端口是否开放。
5. 检查PolarDB集群状态
- 问题原因:PolarDB集群可能未处于运行状态,或者性能负载异常导致连接失败。
- 解决方法:
- 登录PolarDB控制台,检查集群的运行状态是否为运行中。
- 如果集群状态异常,尝试重启集群或联系技术支持。
- 检查集群的性能监控数据,确认是否存在高负载或其他异常情况。
6. 排查其他可能原因
- 问题原因:某些特殊情况可能导致连接失败,例如虚拟主机或轻量服务器无法直接内网连接PolarDB集群。
- 解决方法:
- 确认您的ECS实例是否为虚拟主机或轻量服务器。如果是,建议使用公网地址连接PolarDB集群。
- 如果必须使用内网连接,可以考虑通过云企业网实现跨地域VPC互通。
重要提醒
- 安全性:在排查过程中,如果临时将白名单设置为
0.0.0.0/0
,请务必在测试完成后删除该配置,以避免潜在的安全风险。
- 网络切换:将ECS实例从经典网络迁移到VPC网络后,请确保ECS实例和PolarDB集群位于同一个VPC中,否则仍无法通过内网互通。
通过以上步骤逐一排查,您应该能够解决PolarDB内网无法访问数据库的问题。如果问题仍未解决,建议联系阿里云技术支持以获取进一步帮助。