实例无法连接
# 常见原因
可能原因 | 说明 |
---|---|
网络问题1 | 云服务器与云数据库 MySQL 不在同一虚拟数据中心(VDC) |
网络问题2 | 云服务器与云数据库 MySQL 在同一虚拟数据中心(VDC),但不在同一私网网段 |
白名单问题 | 云数据库 MySQL 白名单配置错误 |
连接数问题1 | 空闲连接数过多 |
连接数问题2 | 活动连接数过多,已经达到了实例最大连接数限制 |
# 解决方案
# 网络问题解决方案
当云服务器实例和云数据库 MySQL 实例位于不同的虚拟数据中心(VDC)时,无法直接通过内网互通。您可以将原实例删除,重新购买同一虚拟数据中心(VDC)下的实例,选择同一私网网段即可。
# 白名单问题解决方案
由于白名单设置中只有默认地址 127.0.0.1。该地址表示不允许任何设备访问云数据库 MySQL 实例。您需要在白名单中添加对端的 IP 地址,白名单具体操作,详情参见 连接实例。
# 连接数问题解决方案
连接数满通常是由于空闲连接过多或活动连接过多导致。导致空闲连接过多原因:
- 应用使用长连接模式:对于长连接模式(比如 Java 应用),应用侧应该配置连接池。连接池的初始连接数设置过高,应用启动后建立多个到 MySQL 实例空闲连接。
- 应用使用短连接模式:对于短连接模式(比如 PHP 应用),出现大量的空闲连接说明应用没有在查询执行完毕后显式的关闭连接。
当空闲连接过多时,您可以:
通过 kill 命令来终止当前空闲会话。
修改应用,长连接模式需要启用连接池的复用功能(建议也启用连接检测功能)。
修改应用,短连接模式需要在代码中修改查询结束后调用关闭连接的方法。
在控制台调小 wait_timeout 参数,修改参数配置步骤,详情参见 参数配置。
注意:
应用服务的超时时间应该比 wait_timeout 参数设置的时间小。
当活动连接过多时,您可以升级云数据库 MySQL 实例规格以获取更大连接数,调整云数据库 MySQL 配置步骤,详情参见 调整配置。