连接腾讯云轻量应用服务器(Lighthouse)与云数据库 MySQL(通常指 TDSQL-C 或 CDB for MySQL),核心在于解决网络互通和权限配置两个问题。轻量服务器本身没有公网 IP 直连内网数据库的“特权”,必须通过正确的网络架构打通链路。
以下是基于生产环境最佳实践的操作指南,分为 VPC 内网连接(推荐) 和 公网连接(不推荐但可行) 两种场景。
一、 前置条件检查(关键!)
在开始之前,请务必确认以下三点,否则后续步骤全部无效:
- 同一地域(Region)
轻量服务器和云数据库必须在同一个地域(如“上海”、“广州”)。跨地域只能通过公网或专线,延迟高且不稳定。 - 同一 VPC 网络(最优解)
轻量服务器创建时,建议选择 “自定义网络” 并加入与云数据库相同的 VPC。这是最稳定、免费、低延迟的方式。 - 安全组/白名单放行
- 云数据库侧:需在控制台添加轻量服务器的内网 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 a或hostname -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;检查轻量服务器本地防火墙(ufw 或 firewalld)是否允许出站 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 端口 |
五、 高级建议(生产环境优化)
-
使用 SSL 加密连接
腾讯云提供 MySQL 连接证书。在连接字符串中添加?ssl-mode=REQUIRED或下载 CA 证书配置,防止中间人攻击。 -
使用连接池
轻量服务器资源有限,避免频繁建立/断开 TCP 连接。在应用层(如 Java Spring、PHP PDO、Python SQLAlchemy)配置连接池。 -
监控与日志
开启云数据库的 SQL 审计 和 慢查询日志,便于排查性能问题。 -
轻量服务器 + 云数据库 = 高性价比组合
轻量适合建站、开发测试、小型应用;云数据库适合持久化存储。两者结合是个人开发者和小团队的经典架构。
总结
✅ 最佳实践:
同地域 + 同 VPC + 内网 IP 连接 + 白名单限制 + SSL 加密
❌ 避免做法:
跨地域直连、公网暴露数据库、使用 0.0.0.0/0 白名单、硬编码密码在代码中。
按上述步骤操作,99% 的连接问题均可解决。如遇具体报错,可提供错误码进一步分析。
CLOUD云枢