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

解决无法连接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实例采用经典网络

  • 解决办法一(推荐):将RDS实例从经典网络切换为VPC,具体操作请参见切换网络类型

    注:切换后,两者必须处于同一个VPC,才能内网互通。

  • 解决办法二:重新购买经典网络的ECS实例。但是VPC比经典网络更安全,建议您使用VPC。

    注:ECS实例不支持从VPC迁移到经典网络。

  • 解决办法三:使用RDS实例的公网连接地址连接RDS实例,即ECS实例通过公网连接RDS实例。这种方式的性能、安全性、稳定性较差。

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

  • 解决办法一(推荐):将ECS实例从经典网络迁移到VPC,具体操作请参见单ECS迁移示例

    注:迁移后,两者必须处于同一个VPC,才能内网互通。

  • 解决办法二:将RDS实例从VPC切换为经典网络。但是VPC比经典网络更安全,建议您使用VPC。

  • 解决办法三:开通ClassicLink功能,使经典网络的ECS实例可以和VPC中的RDS实例通过内网互通。

  • 解决办法四:使用RDS实例的公网连接地址连接RDS实例,即ECS实例通过公网连接RDS实例。这种方式的性能、安全性、稳定性较差。

专有网络不同

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

  • 解决办法一(推荐):将RDS实例迁移到ECS实例所在的VPC,具体操作请参考切换网络类型。先将RDS实例的网络类型从VPC切换到经典网络,再切换回VPC,切换时选择ECS实例所在的VPC。
  • 解决办法二:在两个VPC之间建立高速通道
  • 解决办法三:通过公网互通。这种方式的性能、安全性、稳定性较差。

域名解析失败或错误

域名服务器出现故障或修改过网卡配置,可能会导致域名解析失败或解析错误。此时可以通过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实例位于不同的地域时,无法直接通过内网互通。

  • 解决办法一:将原实例申请退款,重新购买。
  • 解决办法二:ECS实例和RDS实例的网络类型都设置为VPC,同时在两个VPC之间建立高速通道
  • 解决办法三:通过外网互通。这种方式的性能、安全性、稳定性较差。

IP白名单设置有误

  • 由于数据安全性页面<abbr style="box-sizing: border-box; background: transparent;">的</abbr>白名单设置默认只包含本地回环地址(127.0.0.1),该地址表示不允许任何设备访问RDS实例。因此需在白名单中添加对端的IP地址,具体操作请参见设置白名单

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

    注:0.0.0.0/0表示允许任何设备访问RDS实例,请谨慎使用。

  • 如果开启了高安全白名单,需进行如下检查。

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

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

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

      注:专有网络的分组不适用于公网。

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

    • 公网IP地址不固定,可能会变动。

    • IP地址查询工具或网站查询的公网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
  • 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 1045 (28000): Access denied for user ‘XXX’@’XXX’ (using password: YES或NO)

| 用户名或密码错误。 | 点此查看 |
|

  • ERROR 2005 (HY000): Unknown MySQL server host ‘xxxxxxx’ (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)

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

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

适用于

  • 云数据库 RDS

</article>

</main>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,183评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,850评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,766评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,854评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,871评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,457评论 1 311
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,999评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,914评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,465评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,543评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,675评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,354评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,029评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,514评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,616评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,091评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,685评论 2 360

推荐阅读更多精彩内容

  • 本文目的 本文旨在介绍如何创建RDS实例、进行基本设置以及连接实例数据库,使用户能够了解从购买RDS实例到开始使用...
    阿里大君阅读 2,121评论 0 0
  • 2017年4月3日 北京霾 两天的小长假,对我来说也是两天的加班。 忙活了半天终于将BW项目的调研问卷做出来了,是...
    JerryLi123阅读 295评论 0 0
  • 1、常犯错误:其一,我们对感情不加约束(不予管理和指示),听之任之,长期发展下去可能会变成人格失调症患者。其二,担...
    阿米Z阅读 178评论 0 0
  • 君主之官:心 我们下棋的时候,不管是丢了车,还是丢了马,只要老帅还在,这棋就没输;但老帅被对方吃掉了,你的车马炮再...
    七色花园阅读 657评论 0 1
  • 我刚好上车,刚好坐下,刚好翻开书。 你也刚好上车,刚好坐下,刚好翻开书。 刚好的阳光透过刚好打开的车窗, 刚好照亮...
    读懂小王子阅读 258评论 0 0