腾讯云轻量应用服务器连接云数据库MySQL?

连接腾讯云轻量应用服务器(Lighthouse)与云数据库 MySQL(通常指 TDSQL-C 或 CDB for MySQL),核心在于解决网络互通权限配置两个问题。轻量服务器本身没有公网 IP 直连内网数据库的“特权”,必须通过正确的网络架构打通链路。

以下是基于生产环境最佳实践的操作指南,分为 VPC 内网连接(推荐)公网连接(不推荐但可行) 两种场景。


一、 前置条件检查(关键!)

在开始之前,请务必确认以下三点,否则后续步骤全部无效:

  1. 同一地域(Region)
    轻量服务器和云数据库必须在同一个地域(如“上海”、“广州”)。跨地域只能通过公网或专线,延迟高且不稳定。
  2. 同一 VPC 网络(最优解)
    轻量服务器创建时,建议选择 “自定义网络” 并加入与云数据库相同的 VPC。这是最稳定、免费、低延迟的方式。
  3. 安全组/白名单放行
    • 云数据库侧:需在控制台添加轻量服务器的内网 IP 为访问白名单。
    • 轻量服务器侧:需确保防火墙允许出站访问数据库端口(默认 3306)。

二、 方案一:VPC 内网连接(推荐 ✅)

此方式无需购买弹性公网 IP,速度最快,安全性最高。

步骤 1:创建轻量服务器时选择“自定义网络”

  • 在购买轻量服务器页面,不要选“快速创建”
  • 选择 “自定义网络”
  • 创建一个新 VPC,或使用已有 VPC。
  • 将轻量服务器绑定到该 VPC 的子网中。
  • 注意:此时服务器可能无公网 IP,如需管理,可单独绑定一个弹性公网 IP(EIP),但业务流量走内网。

步骤 2:获取云数据库的内网地址

  • 登录腾讯云控制台 → 云数据库 MySQL。
  • 进入实例详情页 → 基本信息
  • 找到 “内网地址”(Private Endpoint),记录 IP 和端口(通常是 3306)。

步骤 3:配置云数据库白名单

  • 在云数据库控制台 → 安全设置IP 白名单
  • 添加轻量服务器的 内网 IP(可在轻量服务器控制台查看,或通过 SSH 登录后执行 curl ifconfig.me 不行,需用 ip ahostname -I 查看内网 IP)。
  • 如果不确定内网 IP,可先添加 0.0.0.0/0 测试连通性(仅限测试,生产环境严禁!)。

步骤 4:从轻量服务器测试连接

SSH 登录轻量服务器,安装 MySQL 客户端:

# Ubuntu/Debian
sudo apt update && sudo apt install mysql-client -y

# CentOS/RHEL
sudo yum install mysql -y

测试连通性:

mysql -h <云数据库内网IP> -P 3306 -u <用户名> -p

输入密码后若能进入 mysql> 提示符,说明连接成功。


三、 方案二:公网连接(不推荐 ⚠️)

适用于轻量服务器无法加入 VPC 或跨地域场景。存在安全风险和高延迟问题。

步骤 1:绑定弹性公网 IP(EIP)

  • 轻量服务器默认无公网 IP。
  • 在轻量服务器控制台 → 网络与安全弹性公网 IP → 绑定一个 EIP。
  • 记录该 EIP 地址。

步骤 2:配置云数据库公网访问

  • 云数据库默认关闭公网访问。
  • 在云数据库控制台 → 基本信息修改访问方式 → 开启 公网访问
  • 系统会生成一个 公网地址(格式类似 cdb-xxx.cdb.tencentyun.com:3307,注意端口可能是 3307 而非 3306)。

步骤 3:配置白名单

  • 在云数据库白名单中,添加轻量服务器的 公网 IP(即绑定的 EIP 地址)。
  • 注意:如果 EIP 是动态的,需使用 CIDR 范围或固定 IP。

步骤 4:测试连接

mysql -h <云数据库公网域名> -P 3307 -u <用户名> -p

❗ 风险提醒:公网暴露数据库极易被扫描攻击,务必:

  • 使用强密码;
  • 限制白名单仅包含你的 EIP;
  • 启用 SSL 加密连接;
  • 定期更新补丁。

四、 常见问题排查(Troubleshooting)

现象 可能原因 解决方案
Connection refused 端口未开放或防火墙拦截 检查云数据库白名单是否包含服务器 IP;检查轻量服务器本地防火墙(ufwfirewalld)是否允许出站 3306
Host is not allowed to connect 白名单未配置 登录云数据库控制台,将服务器 IP 加入白名单
Can't connect to MySQL server on '...' (110) 网络不通 检查是否同地域;检查 VPC 是否一致;ping 测试内网 IP 是否通
Access denied for user 用户名/密码错误 重置数据库密码;确认用户名是否为 root 或其他创建的用户
连接超时 安全组规则缺失 轻量服务器安全组需允许 出站 3306 端口;云数据库安全组需允许 入站 来自服务器 IP 的 3306 端口

五、 高级建议(生产环境优化)

  1. 使用 SSL 加密连接
    腾讯云提供 MySQL 连接证书。在连接字符串中添加 ?ssl-mode=REQUIRED 或下载 CA 证书配置,防止中间人攻击。

  2. 使用连接池
    轻量服务器资源有限,避免频繁建立/断开 TCP 连接。在应用层(如 Java Spring、PHP PDO、Python SQLAlchemy)配置连接池。

  3. 监控与日志
    开启云数据库的 SQL 审计慢查询日志,便于排查性能问题。

  4. 轻量服务器 + 云数据库 = 高性价比组合
    轻量适合建站、开发测试、小型应用;云数据库适合持久化存储。两者结合是个人开发者和小团队的经典架构。


总结

最佳实践
同地域 + 同 VPC + 内网 IP 连接 + 白名单限制 + SSL 加密

避免做法
跨地域直连、公网暴露数据库、使用 0.0.0.0/0 白名单、硬编码密码在代码中。

按上述步骤操作,99% 的连接问题均可解决。如遇具体报错,可提供错误码进一步分析。

未经允许不得转载:CLOUD云枢 » 腾讯云轻量应用服务器连接云数据库MySQL?