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

连接腾讯云轻量应用服务器(Lighthouse)到云数据库 MySQL(通常指 TencentDB for MySQL,即 CDB),主要有以下几种方式。推荐优先使用 内网连接,因为速度更快、更安全且免费。


✅ 推荐方案:通过内网连接(最快、最安全)

前提条件

  1. 轻量应用服务器CDB MySQL 实例 必须在 同一地域(Region)
  2. 两者需处于 同一个 VPC(虚拟私有网络) 中。如果不在同一 VPC,可通过“跨 VPC 对等连接”或“公网 IP + 白名单”方式连接(不推荐,性能差且有风险)。
  3. CDB MySQL 实例已开启 内网访问(默认开启)。
  4. 在 CDB 的 白名单 中添加轻量服务器的 内网 IP

步骤详解

1. 获取轻量应用服务器的内网 IP

  • 登录 腾讯云控制台
  • 进入 轻量应用服务器 → 选择你的服务器 → 查看 基本信息 → 找到 内网 IP(类似 10.x.x.x172.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 连接,但需注意:

步骤

  1. 为 CDB MySQL 实例绑定 公网 IP(在控制台 → 基础配置 → 公网访问 → 开启)
  2. 在 CDB 白名单中添加轻量服务器的 公网 IP
  3. 确保防火墙/安全组允许 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 » 腾讯云轻量应用服务器连接云数据库MySQL?