阿里云服务器无法连接到RDS数据库
网站编辑2020-03-19 18:52:03972
问题描述:
创建阿里云RDS数据库实例之后,发现无法连接RDS实例,原因有很多,可能是阿里云ECS服务器与RDS网络类型不同,也可能由于不在同一个VPC网络导致无法连接。另外可能是由于没有设置白名单还可能是连接方式不正确等导致无法连接,下面就根据这些情况进行排查
排查方案:
1.如下图在阿里云RDS实例管理控制台数据库连接选项可以查看到网络类型,该网络类型需要与连接RDS实例的服务器网络类型保持一致,如果不一致,可以点击右侧的网络类型切换更改为其它网络类型

2.如下图所示需要核实该标记处的专有网络与通过RDS内网地址连接数据库的阿里云ECS服务器VPC网络是否是同一个VPC网络,如果不是同一VPC网络则需要调整为同一个VPC网络或者通过外网地址进行连接

3.如下图核实阿里云ECS服务器是否能正常解析RDS连接地址,如果出现如下图失败的情况可以尝试在网卡配置文件增加DNS地址(centos网卡配置文件一般在”/etc/sysconfig/network-scripts/”目录下,DNS地址可以尝试添加为100.100.2.136、100.100.2.138,注意配置完成后需要重启网络服务使配置生效)

1. 如下图所示需要核实在白名单中有没有添加连接该RDS的服务器IP(如果是同一个VPC只需要添加服务器的内网IP并通过内网地址连接,如果是线下服务器连接需要添加该服务器的公网IP,并使用外网连接地址进行连接) 登录阿里云RDS管理控制台:
rdsnew.console.aliyun.com,点击【云数据库RDS】-【实例列表】-【管理】-【安全控制】,查看白名单是否设置了允许访问的ip或者ip段。如果源IP不确定也可以先设置0.0.0.0/0允许所有IP访问,这样数据库安全性会有所降低,建议使用复杂密码。

2. 如图所示,可能由于RDS会话连接数已满导致无法连接,此时可以通过DMS控制台的性能中的实例会话查看当前RDS会话连接数,如果发现有较多的连接可以通过kill会话选项将相应的空闲会话kill掉然后再次尝试连接数据库。

3. 也可以通过kill命令进行终止,通过MySQL命令行工具连接实例使用“show processlist”查看当前会话情况,然后执行kill [$ID]([$ID]为上一步记录的Id。)结束会话

说明:阿里云RDS实例在连接数已满的情况下,是无法通过DMS或者MySQL命令行工具连接实例的。如果无法通过DMS或MySQL命令行工具连接,建议先在阿里云控制台的参数设置中将wait_timeout参数(单位秒)设置为比较小的值(比如60),让RDS实例主动关闭空闲时间超过60秒的连接,以便可以通过DMS或者MySQL命令行工具连接访问实例。







