跳到主要内容

连接自有 MySQL

您可以将自有的 MySQL 数据库接入云开发平台,复用现有数据库资源,降低数据迁移成本。

接入自有数据库后,您可以:

  • 无缝集成:直接管理现有数据库中的数据,无需数据迁移
  • 数据模型:基于现有数据表快速生成数据模型,自动化数据管理
  • SDK 支持:使用云开发 Web SDK / Node SDK / 小程序 SDK 统一访问
  • 安全可控:数据保留在您的数据库中,完全掌控数据安全

前置条件

在配置自有 MySQL 数据库连接前,请确保:

检查项要求
网络访问数据库具有公网访问能力
用户权限已创建专用数据库用户账号,具备表操作权限
防火墙配置数据库防火墙已开放相应端口(默认 3306)
IP 白名单已配置云开发服务 IP 白名单(见文档末尾)

创建连接配置

1. 进入配置页面

访问 云开发平台/MySQL数据库,点击顶部「新增」按钮

MySQL数据库新增页面

2. 填写连接信息

参数说明必填
数据库类型选择「MySQL」或「SQLServer」(SQLServer 需提工单申请)
配置名称自定义名称,用于在平台中识别此连接
配置标识英文标识符,用于 SDK 中指定连接(如 my-database
接入方式选择「自有数据库」或「腾讯云数据库」
主机地址MySQL 数据库的公网 IP 地址或域名
端口MySQL 服务端口(默认 3306)
数据库名要连接的目标数据库名称
用户名数据库连接用户名
密码数据库连接密码
连接参数额外的 MySQL 连接参数(如 charset=utf8mb4
超时时间连接和查询的超时时间(单位:秒)
注意

若需连接「SQLServer 数据库」,请联系腾讯侧架构师或提交工单申请开通。

使用方式

接入自有 MySQL 数据库后,可通过以下两种方式操作数据。

方式一:直接操作数据库表

直接通过 SDK 进行 CRUD 操作

// 引入 SDK
const { init } = require("@cloudbase/wx-cloud-client-sdk");

// 指定云开发环境 ID
wx.cloud.init({
env: "your-env-id", // 替换为你的环境ID
});

const client = init(wx.cloud);

// 连接自有数据库实例
const db = client.rdb({
instance: "my-database", // 配置标识(创建连接时填写的标识)
database: "test", // 数据库名称
});

// 查询数据
const { data, error } = await db
.from("users")
.select("*")
.eq("status", "active");

if (error) {
console.error("查询失败:", error);
} else {
console.log("查询结果:", data);
}
参数说明
  • instance:创建连接配置时填写的「配置标识」
  • database:目标数据库名称
  • 查询语法请参考:Web SDKNode SDK

方式二:使用数据模型

适用于需要结构化数据管理、自动校验、关联查询等场景。

1. 创建数据模型

访问 云开发平台/MySQL数据库/连接管理,在对应连接配置处点击「数据模型」

云开发平台-MySQL数据库-连接配置点击数据模型页面

选择现有数据表,系统将自动生成对应的数据模型。

2. 操作数据模型

// 引入 SDK
const { init } = require("@cloudbase/wx-cloud-client-sdk");

wx.cloud.init({
env: "your-env-id", // 替换为你的环境ID
});

const client = init(wx.cloud);
const models = client.models;

// 创建数据(假设已创建 todos 模型)
const { data, error } = await models.todos.create({
data: {
title: "学习云开发",
completed: false,
},
});

// 查询数据
const todos = await models.todos.findMany({
where: {
completed: false,
},
orderBy: {
createdAt: "desc",
},
});

console.log(todos);
提示

详细使用方法请参考 数据模型文档

IP 白名单配置

为保障数据库安全,请将以下云开发服务 IP 地址添加到您的 MySQL 数据库白名单中:

175.24.211.44
175.24.212.162
175.24.213.48
175.24.214.104
175.24.214.93
49.234.25.245
49.234.27.58
49.234.3.160
49.234.34.31
49.234.35.33
重要
  • 必须添加所有 IP 地址才能确保服务正常运行
  • 不同云服务商的白名单配置方式不同,请参考对应的数据库管理文档

常见问题

连接失败如何排查?

按照以下步骤逐一排查:

  1. 网络连通性:确认数据库可通过公网访问
  2. 防火墙配置:检查数据库端口是否开放
  3. IP 白名单:确认已添加所有云开发服务 IP
  4. 连接参数:检查主机地址、端口、数据库名、用户名、密码是否正确

是否支持内网数据库?

目前仅支持具有公网访问能力的数据库。如需连接内网数据库,可考虑:

  • 通过云服务商提供的公网代理访问
  • 使用 VPN 或专线打通网络
  • 使用腾讯云数据库(支持内网直连)

数据会被同步到云开发吗?

不会。连接自有数据库后:

  • 数据存储:所有数据仍保留在您的数据库中
  • 访问方式:云开发 SDK 直接连接您的数据库进行操作
  • 数据控制:您完全掌控数据的存储和备份