场景描述

在实际业务场景中,可能会出现无法连接 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. 若云服务器无法连接目标数据库端口,请提工单联系技术支持。