全部产品
Search
文档中心

解决无法连接RDS实例的问题

更新时间: 2021-02-25

本文介绍如何解决无法连接RDS的问题。 

ECS实例无法通过内网访问RDS实例

检查地域

ECS实例和RDS实例需要位于同一地域才能内网互通。可以是同一地域的相同或不同可用区。

  • 请确保ECS实例和RDS实例处于同一个地域:
    • 查看ECS实例所在地域。
    • 查看RDS实例所在地域。
  • 如果ECS实例和RDS实例位于不同的地域,则无法直接通过内网互通,请参见以下方法进行处理:
    • 方法一:将ECS或RDS实例释放或退款,重新购买同一地域的实例。
    • 方法二:ECS实例使用RDS实例的公网连接地址连接RDS实例,如何申请外网地址请参见申请外网地址。这种方式的性能、安全性、稳定性较差。

检查网络类型

  1. 请确保ECS实例和RDS实例的网络类型相同(都是专有网络或都是经典网络)。
    • 查看ECS实例的网络类型。
    • 查看RDS实例的网络类型。
  2. 如果一个是经典网络,一个是专有网络,请参见以下方法进行处理:
    • ECS实例采用专有网络而RDS实例采用经典网络的场景:
      • 方法一(推荐):将RDS实例从经典网络切换为专有网络(且专有网络ID相同),具体操作请参见切换网络类型
      • 方法二:重新购买经典网络的ECS实例。但是VPC比经典网络更安全,建议您使用VPC。
        说明:ECS实例不支持从VPC迁移到经典网络。
      • 方法三:ECS实例使用RDS实例的公网地址连接RDS实例,如何申请外网地址请参见申请外网地址。这种方式的性能、安全性、稳定性较差。
    • ECS实例采用经典网络而RDS实例采用专有网络的场景:
      • 方法一(推荐):将ECS实例从经典网络迁移到专有网络(且专有网络ID相同),具体操作请参见单ECS迁移示例
      • 方法二:将RDS实例从VPC切换为经典网络。但是VPC比经典网络更安全,建议您使用VPC。
      • 方法三:开通ClassicLink功能,使经典网络的ECS实例可以和VPC中的RDS实例通过内网互通。
        说明:若开通ClassicLink功能后网络不通,请参见建立ClassicLink连接后经典网络和VPC网络不通的排查思路
      • 方法四:ECS实例使用RDS实例的公网地址连接RDS实例,如何申请外网地址请参见申请外网地址。这种方式的性能、安全性、稳定性较差。
  3. 如果ECS实例与RDS实例的网络类型都是专有网络,请确认它们位于同一个专有网络。
    • 查看ECS实例的专有网络ID。
    • 查看RDS实例的专有网络ID。
  4. 如果专有网络不同,请参见以下方法进行处理:
    • 方法一(推荐):将RDS实例迁移到ECS实例所在的VPC。具体操作请参见切换专有网络VPC和虚拟交换机
    • 方法二:在两个VPC之间建立云企业网
    • 方法三:ECS实例使用RDS实例的公网地址连接RDS实例。这种方式的性能、安全性、稳定性较差。
  5. 如果ECS和RDS实例在同一个VPC和地域下,无法通过内网地址连接RDS实例(外网地址可以连接)、ping和telnet都失败。请参见由于路由问题导致ECS无法连接RDS实例处理。

无法通过外网访问RDS实例

检查连接地址

确保连接RDS实例时使用的是RDS的外网地址。您可以在RDS控制台数据库连接页面查看RDS的外网地址。

检查RDS的IP白名单

确保已将正确的本地设备IP地址添加到RDS的IP白名单。请在数据库的白名单中临时添加0.0.0.0/0,如果设置后可以正常访问,说明是白名单设置存在问题。您可以通过以下方法获取正确的本地设备IP地址,并将该地址添加到白名单中。如何添加白名单请参见设置白名单

连接失败的常见报错

请根据现场情况与具体的报错信息,选择对应的解决方法。

数据库类型 错误信息 报错原因 解决办法
MySQL或MariaDB TX
  • ERROR 2003 (HY000): Can't connect to MySQL server on 'XXX'(10038或10060或110)
  • 无法连接到数据库:XXX
网络互通问题。

点此查看

  • ERROR 1045 (HY000): #28000ip not in whitelist
  • ERROR 2801 (HY000): #RDS00ip not in whitelist, client ip is XXX
  • ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error:110
白名单设置问题。 点此查看
  • ERROR 1045 (28000): Access denied for user ‘XXX’@’XXX’ (using password: YES或NO)
  • ERROR 1045 (28000): Authentication Failed For RDS maybe username or password is incorrect
用户名或密码错误。 点此查看
  • ERROR 2005 (HY000): Unknown MySQL server host ‘XXX’ (110或11004)
  • SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
  • Name or service not known
DNS服务器无法解析地址。 点此查看
SQL Server 无法连接到XXX。Cannot connect to XXX。
在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。(provider: TCP Provider, error: 0 - 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)(Microsoft SQL Server,错误: 10060或258)
网络互通问题。

点此查看

无法连接到XXX。Cannot connect to XXX。

已成功与服务器建立连接,但是在登录过程中发生错误。(provider:TCP提供程序,error:0-指定的网络名不再可用。)(Microsoft SQL Server,错误:64)

白名单设置问题。

点此查看

Logon failed for login 'user' due to trigger execution 连接数满。

点此查看

cannot open user default database.Login failed

删除了账号默认登录的库,导致无法登录。

点此查看

PostgreSQL/PPAS

Unable to connect to server:

could not connect to server: Connection timed out (0x0000274C/10060)Is the server running on host “XXX.rds.aliyuncs.com” and acceptingTCP/IP connections on port XXX?

网络互通问题。

点此查看

  • server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.
  • Error connecting to the server: FATAL: no pg_hba.conf entry
白名单设置问题。

点此查看

FATAL: remaining connection slots are reserved for non-replication superuser connections 连接数满。

点击查看

通过DMS连接RDS数据库 The user specified as a definer ('user'@'a.b.c.d') does not exist 登录所使用的账号不存在,该问题仅发生在RDS数据库代理模式(原高安全模式)下。 点击查看
The MYSQL server is running with the --rds-deny-access option so it cannot execute this statement
  • RDS实例过期。

  • RDS实例的磁盘满。

点此查看
对不起,您暂时无法通过DMS访问该实例。 您不是该实例的拥有者,该实例的拥有者并未向您授予登录权限。 点此查看
请检查连接地址的正确性、网络畅通情况、白名单设置

该问题一般发生于自建的MySQL服务器,问题原因可能是如下几点:

  • ECS实例的防火墙限制或自建MySQL服务器所在主机的防火墙限制。
  • ECS安全组未对DMS开放。
  • MySQL服务器未启动。
  • MySQL服务器只允许root账户本地登录。
点此查看
max_user_connections RDS数据库的连接数满。 点此查看
因白名单问题无法登录数据库

RDS白名单中没有添加DMS服务的IP地址段。

点此查看

相关文档

适用于

  • 云数据库RDS