连接自有 MySQL
您可以将自有的 MySQL 数据库接入云开发平台,复用现有数据库资源,降低数据迁移成本。
接入自有数据库后,您可以:
- 无缝集成:直接管理现有数据库中的数据,无需数据迁移
- 数据模型:基于现有数据表快速生成数据模型,自动化数据管理
- SDK 支持:使用云开发 Web SDK / Node SDK / 小程序 SDK 统一访问
- 安全可控:数据保留在您的数据库中,完全掌控数据安全
前置条件
在配置自有 MySQL 数据库连接前,请确保:
| 检查项 | 要求 |
|---|---|
| 网络访问 | 数据库具有公网访问能力 |
| 用户权限 | 已创建专用数据库用户账号,具备表操作权限 |
| 防火墙配置 | 数据库防火墙已开放相应端口(默认 3306) |
| IP 白名单 | 已配置云开发服务 IP 白名单(见文档末尾) |
创建连接配置
1. 进入配置页面
访问 云开发平台/MySQL数据库,点击顶部「新增」按钮

2. 填写连接信息
| 参数 | 说明 | 必填 |
|---|---|---|
| 数据库类型 | 选择「MySQL」或「SQLServer」(SQLServer 需提工单申请) | 是 |
| 配置名称 | 自定义名称,用于在平台中识别此连接 | 是 |
| 配置标识 | 英文标识符,用于 SDK 中指定连接(如 my-database) | 是 |
| 接入方式 | 选择「自有数据库」或「腾讯云数据库」 | 是 |
| 主机地址 | MySQL 数据库的公网 IP 地址或域名 | 是 |
| 端口 | MySQL 服务端口(默认 3306) | 是 |
| 数据库名 | 要连接的目标数据库名称 | 是 |
| 用户名 | 数据库连接用户名 | 是 |
| 密码 | 数据库连接密码 | 是 |
| 连接参数 | 额外的 MySQL 连接参数(如 charset=utf8mb4) | 否 |
| 超时时间 | 连接和查询的超时时间(单位:秒) | 否 |
注意
若需连接「SQLServer 数据库」,请联系腾讯侧架构师或提交工单申请开通。
使用方式
接入自有 MySQL 数据库后,可通过以下两种方式操作数据。
方式一:直接操作数据库表
直接通过 SDK 进行 CRUD 操作
- 小程序
- Web
- Node.js
// 引入 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);
}
// 引入 SDK
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({
env: "your-env-id", // 替换为你的环境ID
region: "ap-shanghai", // 不指定 region 时,默认使用 ap-shanghai
});
// 登录认证
const auth = app.auth();
await auth.signInAnonymously(); // 或使用其他登录方式
// 连接自有数据库实例
const db = app.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);
}
// 引入 SDK
const cloudbase = require("@cloudbase/node-sdk");
const app = cloudbase.init({
env: "your-env-id", // 替换为你的环境ID
});
// 连接自有数据库实例
const db = app.rdb({
instance: "my-database", // 配置标识
database: "test", // 数据库名称
});
// 查询数据
const { data, error } = await db
.from("users")
.select("id, name, email")
.eq("status", "active")
.limit(10);
console.log(data);
方式二:使用数据模型
适用于需要结构化数据管理、自动校验、关联查询等场景。
1. 创建数据模型
访问 云开发平台/MySQL数据库/连接管理,在对应连接配置处点击「数据模型」

选择现有数据表,系统将自动生成对应的数据模型。
2. 操作数据模型
- 小程序
- Web
- Node.js
// 引入 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);
// 引入 SDK
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({
env: "your-env-id", // 替换为你的环境ID
region: "ap-shanghai",
});
// 登录认证
const auth = app.auth();
await auth.signInAnonymously();
// 创建数据(假设已创建 todos 模型)
const { data, error } = await app.models.todos.create({
data: {
title: "学习云开发",
completed: false,
},
});
// 查询数据
const todos = await app.models.todos.findMany({
where: {
completed: false,
},
orderBy: {
createdAt: "desc",
},
});
console.log(todos);
const cloudbase = require("@cloudbase/node-sdk");
const app = cloudbase.init({
env: "your-env-id", // 替换为你的环境ID
});
// 创建数据
const { data } = await app.models.todos.create({
data: {
title: "学习云开发",
completed: false,
},
});
// 更新数据
await app.models.todos.update({
where: {
id: data.id,
},
data: {
completed: true,
},
});
提示
详细使用方法请参考 数据模型文档
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 地址才能确保服务正常运行
- 不同云服务商的白名单配置方式不同,请参考对应的数据库管理文档
常见问题
连接失败如何排查?
按照以下步骤逐一排查:
- 网络连通性:确认数据库可通过公网访问
- 防火墙配置:检查数据库端口是否开放
- IP 白名单:确认已添加所有云开发服务 IP
- 连接参数:检查主机地址、端口、数据库名、用户名、密码是否正确
是否支持内网数据库?
目前仅支持具有公网访问能力的数据库。如需连接内网数据库,可考虑:
- 通过云服务商提供的公网代理访问
- 使用 VPN 或专线打通网络
- 使用腾讯云数据库(支持内网直连)
数据会被同步到云开发吗?
不会。连接自有数据库后:
- 数据存储:所有数据仍保留在您的数据库中
- 访问方式:云开发 SDK 直接连接您的数据库进行操作
- 数据控制:您完全掌控数据的存储和备份