无法连接数据库
在实际业务场景中,可能会出现无法连接 MySQL Plus 的情况,您可以参考以下排查思路自行检查,也可以直接提工单联系技术支持。
排查集群状态
排查方法
- 
登录 AppCenter 集群管理页面,检查目标集群的运行状态是否为 活跃。
- 
查看集群节点资源状态,检查资源硬盘使用率指标是否已超过85%,硬盘空间已不足。 
- 
查看实例连接数检查全部连接数等服务指标,并通过查看集群最大连接数,确认连接数是否过满。 - 
max_connections指允许同时连接的客户端总数。如果设定值为default,表示最大连接数随内存规格变化。
- 
max_user_connections指特定 MySQL 账号允许的最大同时连接数。
 
- 
可能原因
- 
MySQL Plus 系统故障、状态异常,以及集群或表被锁定等。 
- 
数据库硬盘使用率超过85%后,数据库可能不可用,不能正常执行连接、写入等操作。 
- 
数据库连接数过满,可能会导致业务侧无法正常连接,也会导致实例全量备份和增量备份失败,影响业务的正常使用。 
解决办法
- 
选中目标集群,选择更多操作 > 重启,尝试重启数据库。 
- 
扩容集群硬盘空间,提升高硬盘可使用空间;删除过期数据;缩短 binlog 本地保留时长;对 CPU 、内存、硬盘等资源指标开启监控告警,及时了解集群资源状态。 
- 
排查业务连接是否有效,释放空闲连接;设置 default,并扩容集群内存空间,提高max_connections值;对当前线程连接数等服务指标开启监控告警,及时了解集群服务状态。
排查连接方式
排查方法
- 
检查已安装 MySQL 客户端版本是否低于集群 MySQL 版本。 
- 
登录 AppCenter 集群管理页面,检查目标集群是否开启 SSL 加密传输,以及检查用户账号是否开启加密认证。 
- 
检查连接命令是否正确。 
- 
在集群账号列表,检查连接用户账号是否正确授权或被删除。 
可能原因
- 
MySQL 客户端版本低于集群 MySQL 版本,兼容性问题导致不能正常连接。 
- 
集群开启 SSL 加密传输后,用户账号未开启加密认证,或未正确上传证书或连接命令不完整。 
- 
连接命令不正确。 
- 
用户账号未被授权为 %;用户账号被删除,不支持连接。
解决办法
- 
确认数据库内核版本,重新选择 MySQL 客户端相应版本并安装。 
- 
同时开启集群 SSL 加密传输和数据库账户加密认证,且需将 SSL 证书上传到服务器。 
- 
获取正确的连接地址、端口参数配置、用户账号和密码、SSL 证书名等信息,并重试连接实例。 
- 
修改用户账号授权为 %;重新添加用户账号;获取可连接用户账号和密码。
正确连接方式示例:
- 
开启 SSL 加密传输后,通过外网地址连接: mysql -h <外网地址> -P 3306 -u testuser -p --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
- 
开启 SSL 加密传输后,通过内网地址连接: mysql -h <外网地址> -P 3306 -u testuser -p --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
| 注意 | 
|---|
| SSL 证书文件需上传到服务器,且需放在执行连接命令的路径下。 | 
排查网络问题
内网地址连接
排查方法
- 
检查云服务器与目标 MySQL Plus 集群是否在同一区域同一 VPC 网络。 
- 
检查云服务器关联安全组规则。 
- 
通过 telnet <内网地址> <端口号>命令,检查当前云服务是否可正常连接到数据库端口。
可能原因
- 
不同区域或不同 VPC 网络的云资源之间网络隔离,内网互不相通,无法连接。 
- 
云服务器关联安全组未允许对外访问目标集群。 
- 
云服务器无法访问集群开放端口。 
解决办法
- 
根据就近原则,迁移数据库资源或重新购买云服务器,使其在同一 VPC 网络内;通过 VPC 网络的 隧道服务和VPN 服务,打通资源间不同区域或不同 VPC 的网络。
- 
为云服务器安全组添加上行规则,允许访问目标集群。 
- 
若云服务器无法连接目标数据库端口,请提工单联系技术支持。 
外网地址连接
排查方法
- 
IP 白名单添加 0.0.0.0/0,检查是否能正常连接。
- 
检查云服务器关联安全组规则。 
- 
检查云服务器子网关联网络 ACL 规则。 
- 
同区域云服务器进行 ping 集群 IP 测试验证。 
可能原因
- 
外部服务器 IP 地址变动等,导致白名单中配置不正确。 
- 
云服务器关联安全组未允许对外访问目标集群。 
- 
云服务器绑定的私有网络启用了网络 ACL,但未设置允许对外访问目标集群。 
- 
区域内 VPC 网络不通。 
解决办法
- 
白名单添加 0.0.0.0/0后,确认连接情况。- 
正常连接,则在成功连接的客户端,执行 show processlist查询进程信息。在 Host 行获取服务器正确 IP 地址,并将其添加到白名单。
- 
不能连接,则请排查其他可能原因。 说明 0.0.0.0/0表示允许任何服务器连接数据库。验证结束后,建议立即删除白名单中配置。
 
- 
- 
为当前云服务器安全组添加上行规则,允许访问目标集群。 
- 
关闭云服务器私有网络;对已启用的网络 ACL添加上行规则,放通与目标集群的网络。 
- 
若同区域云服务器也不能 ping 通集群,请提工单联系技术支持。