故障排查

 

无法连接数据库

更新时间 2023-09-06

在实际业务场景中,可能会出现无法连接 MySQL Plus 的情况,您可以参考以下排查思路自行检查,也可以直接提工单联系技术支持。

排查集群状态

排查方法

  1. 登录 AppCenter 集群管理页面,检查目标集群的运行状态是否为活跃

  2. 查看集群节点资源状态,检查资源硬盘使用率指标是否已超过85%,硬盘空间已不足。

  3. 查看实例连接数检查全部连接数等服务指标,并通过查看集群最大连接数,确认连接数是否过满。

    -max_connections 指允许同时连接的客户端总数。如果设定值为 default,表示最大连接数随内存规格变化。

    -max_user_connections 指特定 MySQL 账号允许的最大同时连接数。

可能原因

  1. MySQL Plus 系统故障、状态异常,以及集群或表被锁定等。
  2. 数据库硬盘使用率超过85%后,数据库可能不可用,不能正常执行连接、写入等操作。
  3. 数据库连接数过满,可能会导致业务侧无法正常连接,也会导致实例全量备份和增量备份失败,影响业务的正常使用。

解决办法

  1. 选中目标集群,选择更多操作 > 重启,尝试重启数据库。
  2. 扩容集群硬盘空间,提升高硬盘可使用空间;删除过期数据;缩短 binlog 本地保留时长;对 CPU 、内存、硬盘等资源指标开启监控告警,及时了解集群资源状态。
  3. 排查业务连接是否有效,释放空闲连接;设置 default ,并扩容集群内存空间,提高 max_connections 值;对当前线程连接数等服务指标开启监控告警,及时了解集群服务状态。

排查连接方式

排查方法

  1. 检查已安装 MySQL 客户端版本是否低于集群 MySQL 版本。
  2. 登录 AppCenter 集群管理页面,检查目标集群是否开启 SSL 加密传输,以及检查用户账号是否开启加密认证
  3. 检查连接命令是否正确。
  4. 在集群账号列表,检查连接用户账号是否正确授权或被删除。

可能原因

  1. MySQL 客户端版本低于集群 MySQL 版本,兼容性问题导致不能正常连接。
  2. 集群开启 SSL 加密传输后,用户账号未开启加密认证,或未正确上传证书或连接命令不完整。
  3. 连接命令不正确。
  4. 用户账号未被授权为%;用户账号被删除,不支持连接。

解决办法

  1. 确认数据库内核版本,重新选择 MySQL 客户端相应版本并安装。
  2. 同时开启集群 SSL 加密传输和数据库账户加密认证,且需将 SSL 证书上传到服务器。
  3. 获取正确的连接地址、端口参数配置、用户账号和密码、SSL 证书名等信息,并重试连接实例。
  4. 修改用户账号授权为%;重新添加用户账号;获取可连接用户账号和密码。

正确连接方式示例:

  • 开启 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 证书文件需上传到服务器,且需放在执行连接命令的路径下。

排查网络问题

内网地址连接

排查方法

  1. 检查云服务器与目标 MySQL Plus 集群是否在同一区域同一 VPC 网络。
  2. 检查云服务器关联安全组规则。
  3. 通过 telnet <内网地址> <端口号>命令,检查当前云服务是否可正常连接到数据库端口。

可能原因

  1. 不同区域或不同 VPC 网络的云资源之间网络隔离,内网互不相通,无法连接。
  2. 云服务器关联安全组未允许对外访问目标集群。
  3. 云服务器无法访问集群开放端口。

解决办法

  1. 根据就近原则,迁移数据库资源或重新购买云服务器,使其在同一 VPC 网络内;通过 VPC 网络隧道服务VPN 服务,打通资源间不同区域或不同 VPC 的网络。
  2. 为云服务器安全组添加上行规则,允许访问目标集群。
  3. 若云服务器无法连接目标数据库端口,请提工单联系技术支持。

外网地址连接

排查方法

  1. IP 白名单添加0.0.0.0/0,检查是否能正常连接。
  2. 检查云服务器关联安全组规则。
  3. 检查云服务器子网关联网络 ACL 规则。
  4. 同区域云服务器进行 ping 集群 IP 测试验证。

可能原因

  1. 外部服务器 IP 地址变动等,导致白名单中配置不正确。
  2. 云服务器关联安全组未允许对外访问目标集群。
  3. 云服务器绑定的私有网络启用了网络 ACL,但未设置允许对外访问目标集群。
  4. 区域内 VPC 网络不通。

解决办法

  1. 白名单添加0.0.0.0/0后,确认连接情况。

    -正常连接,则在成功连接的客户端,执行show processlist查询进程信息。在 Host 行获取服务器正确 IP 地址,并将其添加到白名单。

    -不能连接,则请排查其他可能原因。

    说明

    0.0.0.0/0表示允许任何服务器连接数据库。验证结束后,建议立即删除白名单中配置。

  2. 为当前云服务器安全组添加上行规则,允许访问目标集群。

  3. 关闭云服务器私有网络;对已启用的网络 ACL添加上行规则,放通与目标集群的网络。

  4. 若同区域云服务器也不能 ping 通集群,请提工单联系技术支持。

这篇文档解决了您的问题吗?
0
0