故障排查|无法连接数据库
在实际业务场景中,可能会出现无法连接 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 通集群,请提工单联系技术支持。