本文介绍如何解决无法连接RDS的问题。
ECS实例和RDS实例需要位于同一地域才能内网互通。可以是同一地域的相同或不同可用区。
说明 :若开通ClassicLink功能后网络不通,请参见 建立ClassicLink连接后经典网络和VPC网络不通的排查思路 。
确保连接RDS实例时使用的是RDS的外网地址。您可以在RDS控制台的数据库连接页面查看RDS的外网地址。
确保已将正确的本地设备IP地址添加到RDS的IP白名单。请在数据库的白名单中临时添加0.0.0.0/0
,如果设置后可以正常访问,说明是白名单设置存在问题。您可以通过以下方法获取正确的本地设备IP地址,并将该地址添加到白名单中。如何添加白名单请参见设置白名单。
请根据现场情况与具体的报错信息,选择对应的解决方法。
数据库类型 | 错误信息 | 报错原因 | 解决办法 |
MySQL或MariaDB TX |
|
网络互通问题。 | |
|
白名单设置问题。 | 点此查看 | |
|
用户名或密码错误。 | 点此查看 | |
|
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? |
网络互通问题。 | |
|
白名单设置问题。 | ||
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 |
|
点此查看 | |
对不起,您暂时无法通过DMS访问该实例。 | 您不是该实例的拥有者,该实例的拥有者并未向您授予登录权限。 | 点此查看 | |
请检查连接地址的正确性、网络畅通情况、白名单设置 | 该问题一般发生于自建的MySQL服务器,问题原因可能是如下几点:
|
点此查看 | |
max_user_connections | RDS数据库的连接数满。 | 点此查看 | |
因白名单问题无法登录数据库 | RDS白名单中没有添加DMS服务的IP地址段。 |
点此查看 |