连接腾讯云轻量应用服务器(Lighthouse)到云数据库 MySQL(通常指 TencentDB for MySQL,即 CDB),主要有以下几种方式。推荐优先使用 内网连接,因为速度更快、更安全且免费。
✅ 推荐方案:通过内网连接(最快、最安全)
前提条件
- 轻量应用服务器 和 CDB MySQL 实例 必须在 同一地域(Region)。
- 两者需处于 同一个 VPC(虚拟私有网络) 中。如果不在同一 VPC,可通过“跨 VPC 对等连接”或“公网 IP + 白名单”方式连接(不推荐,性能差且有风险)。
- CDB MySQL 实例已开启 内网访问(默认开启)。
- 在 CDB 的 白名单 中添加轻量服务器的 内网 IP。
步骤详解
1. 获取轻量应用服务器的内网 IP
- 登录 腾讯云控制台
- 进入 轻量应用服务器 → 选择你的服务器 → 查看 基本信息 → 找到 内网 IP(类似
10.x.x.x或172.x.x.x)
2. 配置 CDB MySQL 的白名单
- 进入 TencentDB for MySQL 控制台
- 选择你的数据库实例 → 安全设置 → IP 白名单
- 添加轻量服务器的 内网 IP(例如
10.0.1.10) - 如果希望允许整个子网,可添加 CIDR 格式,如
10.0.1.0/24
⚠️ 注意:首次添加后可能需要几分钟生效。
3. 从轻量服务器连接 CDB MySQL
方法一:命令行连接(Linux)
# 安装 mysql 客户端(如果未安装)
sudo apt update && sudo apt install -y mysql-client # Debian/Ubuntu
# 或
sudo yum install -y mysql # CentOS/RHEL
# 连接命令
mysql -h <CDB内网地址> -P 3306 -u <用户名> -p<密码>
示例:
mysql -h 10.0.1.50 -P 3306 -u myuser -pMyPassword123
方法二:代码连接(以 Python 为例)
import pymysql
connection = pymysql.connect(
host='10.0.1.50', # CDB 内网 IP
port=3306,
user='myuser',
password='MyPassword123',
database='mydb',
charset='utf8mb4'
)
try:
with connection.cursor() as cursor:
cursor.execute("SELECT VERSION()")
result = cursor.fetchone()
print(f"MySQL version: {result}")
finally:
connection.close()
方法三:Java/Spring Boot 配置
spring:
datasource:
url: jdbc:mysql://10.0.1.50:3306/mydb?useSSL=false&serverTimezone=Asia/Shanghai
username: myuser
password: MyPassword123
driver-class-name: com.mysql.cj.jdbc.Driver
🌐 备选方案:通过公网连接(不推荐,仅用于调试)
如果无法使用内网(如不同地域、不同 VPC),可使用公网 IP 连接,但需注意:
步骤
- 为 CDB MySQL 实例绑定 公网 IP(在控制台 → 基础配置 → 公网访问 → 开启)
- 在 CDB 白名单中添加轻量服务器的 公网 IP
- 确保防火墙/安全组允许 3306 端口出站
连接命令
mysql -h <CDB公网IP> -P 3306 -u myuser -pMyPassword123
⚠️ 安全风险
- 公网暴露数据库端口极易被扫描攻击
- 建议配合 SSH 隧道 或 跳板机 使用,而非直接开放公网
示例 SSH 隧道:
ssh -L 3306:<CDB公网IP>:3306 root@<轻量服务器公网IP>
# 然后本地连接:
mysql -h 127.0.0.1 -P 3306 -u myuser -pMyPassword123
🔒 最佳实践建议
| 项目 | 建议 |
|---|---|
| 连接方式 | 优先使用 内网连接 |
| 白名单策略 | 最小化原则,只添加必要 IP |
| 密码强度 | 使用强密码,定期更换 |
| SSL/TLS | 生产环境建议启用 SSL 加密连接 |
| 监控与日志 | 开启 CDB 审计日志,监控异常访问 |
| 安全组 | 轻量服务器安全组无需放行 3306 入站(因为是主动发起连接) |
❓ 常见问题排查
Q1:连接超时?
- 检查是否在同一地域、同一 VPC
- 确认 CDB 白名单已添加轻量服务器内网 IP
- 检查轻量服务器安全组是否允许出站 3306(默认允许)
- 尝试 ping CDB 内网 IP 测试连通性
Q2:Access denied?
- 用户名或密码错误
- 用户权限不足(需在 CDB 中授权该用户访问特定数据库)
- 主机名不匹配(MySQL 用户可能绑定特定主机,如
'myuser'@'%'或'myuser'@'10.0.1.10')
Q3:如何创建支持内网访问的用户?
-- 登录 CDB 后执行
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
如需进一步帮助,请提供:
- 轻量服务器和 CDB 是否同地域?
- 使用的操作系统和编程语言?
- 具体报错信息?
我可以给出更精准的解决方案。
云知识CLOUD