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

2019-12-06  本文已影响0人  dbc94a66f502

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

2019年10月23日 19:40:35

<main role="main" style="box-sizing: border-box; display: block;">

<article role="article" aria-labelledby="title_n3o_dgb_ljy" style="box-sizing: border-box; display: block;">

概述

在搭建业务场景的调试过程中,经常会出现无法连接RDS实例的情况,很多时候都是由于网络类型不统一、白名单未添加对应IP地址等导致的问题。本文主要介绍在各种情况下,如何自助解决无法连接RDS的问题。

详细信息

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

网络类型不同

ECS实例采用专有网络(VPC)而RDS实例采用经典网络

ECS实例采用经典网络而RDS实例采用专有网络

专有网络不同

专有网络是基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离,所以当ECS和RDS实例的网络类型均为专有网络时,必须保证所属的专有网络也相同,才能内网互通。

域名解析失败或错误

域名服务器出现故障或修改过网卡配置,可能会导致域名解析失败或解析错误。此时可以通过ping和telnet命令测试到RDS的连通性,命令如下。

<pre id="codeblock-ccg-b3f-ayz" style="box-sizing: border-box; font: 14px/1.45 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; white-space: pre-wrap; display: block; padding: 16px; margin: 0px 0px 25px; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: normal; background-color: rgb(247, 247, 247); border: 1px solid rgb(204, 204, 204); border-radius: 4px; overflow: auto;">ping [Domain] telnet [Domain] [$Port]</pre>

注:[Domain]为RDS的连接地址,[Port]为RDS的连接端口号。

ping命令成功示例如下。 image ping命令失败示例如下。 image telnet命令成功示例如下。 image telnet命令失败示例如下。 image

如果失败的话,可以通过修改网卡配置文件来解决问题。本文以CentOS系统为例。

  1. 修改网卡配置文件。

    <pre id="codeblock-znm-t3r-q99" style="box-sizing: border-box; font: 14px/1.45 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; white-space: pre-wrap; display: block; padding: 16px; margin: 0px 0px 25px; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: normal; background-color: rgb(247, 247, 247); border: 1px solid rgb(204, 204, 204); border-radius: 4px; overflow: auto;">/etc/sysconfig/network-scripts/[$Interface_config]</pre>

    注:[$Interface_config]为系统使用的网卡配置文件,可以通过ifconfig命令查看其后缀名,默认为ifcfg-eth0。

  2. 在配置文件末尾添加如下配置。

    <pre id="codeblock-f1y-bss-1y2" style="box-sizing: border-box; font: 14px/1.45 "YaHei Consolas Hybrid", Consolas, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Helvetica, monospace, monospace; white-space: pre-wrap; display: block; padding: 16px; margin: 0px 0px 25px; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: normal; background-color: rgb(247, 247, 247); border: 1px solid rgb(204, 204, 204); border-radius: 4px; overflow: auto;">DNS1=100.100.2.136
    DNS2=100.100.2.138</pre>

    注:如果已经存在DNS1和DNS2配置,请将其修改为上述值。

    系统返回类似如下。 修改dns
  3. 执行如下命令,重启Network服务。

    放大查看

    systemctl restart network
    
  4. 执行如下命令,确认配置已生效。

    放大查看

     cat /etc/resolv.conf
    
    系统返回类似如下。 image

地域不同

当ECS实例和RDS实例位于不同的地域时,无法直接通过内网互通。

IP白名单设置有误

只读实例未设置白名单

当使用只读实例或读写分离时,要确保只读实例上也设置了白名单,否则应用程序无法访问只读实例。

内外网地址使用错误

使用内网地址从外网进行连接,或者使用外网地址从内网进行连接都会导致连接失败。请确认您使用的地址类型,如果您需要从内网连接RDS实例,请使用RDS实例的内网地址。如果您需要从外网连接RDS实例,请使用RDS实例的外网地址。

连接数已满

连接数满通常是由于空闲连接过多或活动连接过多,具体原因及解决办法请参见RDS for MySQL 连接数满情况的处理RDS for PostgreSQL 连接数满情况的处理

无法连接RDS实例的常见报错和解决办法

放大查看

<caption style="box-sizing: border-box; text-align: left; font-style: italic;"> </caption><colgroup style="box-sizing: border-box;"><col style="box-sizing: border-box; width: 0px;"><col style="box-sizing: border-box; width: 0px;"><col style="box-sizing: border-box; width: 0px;"><col style="box-sizing: border-box; width: 0px;"></colgroup>

数据库类型 错误信息 原因 解决办法
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)

| 白名单设置问题。 | 点此查看 |
| 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?

| 网络互通问题。 | 点此查看 |
|

| 白名单设置问题。 | 点此查看 |

适用于

</article>

</main>

上一篇 下一篇

猜你喜欢

热点阅读