调用 MySQL 数据库
概述
「云函数」提供了多种方式连接和操作 MySQL 数据库,满足不同场景的应用需求。根据您的数据库部署位置和网络环境,选择合适的连接方式:
| 连接方式 | 使用场景 | 优势 |
|---|---|---|
| 云开发 MySQL(推荐) | 使用云开发环境自带的 MySQL 数据库 | 配置简单,自动内网直连 |
| 内网互联 | 连接腾讯云其他 MySQL 实例 | 高性能,低延迟,安全 |
| 公网连接 | 连接任意可公网访问的 MySQL 实例 | 灵活性高,适用范围广 |
快速开始
5 分钟快速连接云开发 MySQL 数据库
连接方式详解
了解三种连接方式的配置步骤和适用场景
数据库操作
学习如何在云函数中进行增删改查操作
最佳实践
连接池优化、错误处理、事务管理等实用技巧
常见问题
解决连接超时、性能优化等常见问题
快速开始
步骤 1:准备数据库
- 云开发 MySQL(推荐)
- 腾讯云 MySQL
- 公网 MySQL
- 登录 云开发平台/MySQL 数据库
- 根据您的情况选择:
- 已有数据库:参考 MySQL 迁移至自有账号 文档,将数据库迁移到您的自有腾讯云账号,迁移后可支持 VPC 内网连接
- 首次使用:系统将提示您初始化数据库,选择私有网络及子网后确认
- 在 数据库设置 页面复制「内网连接地址」
连接字符串格式
格式:mysql://root:密码@内网地址:3306/tcb
- 登录 腾讯云 MySQL 控制台
- 确认 MySQL 实例与云函数在同一地域(推荐上海)
- 记录实例的内网地址、端口、用户名、密码
- 确保 MySQL 数据库已开启公网访问
- 配置防火墙规则,允许云函数访问
- 记录数据库的公网地址、端口、用户名、密码
安全提醒
公网连接存在安全风险,生产环境建议使用内网连接
步骤 2:安装数据库驱动
在云函数项目中安装 mysql2:
- npm
- yarn
- pnpm
npm install mysql2 --save
yarn add mysql2
pnpm add mysql2
步骤 3:配置网络连接
- 云开发 MySQL
- 腾讯云 MySQL
- 公网 MySQL
步骤 4:编写云函数代 码
const mysql = require('mysql2/promise');
// 全局连接池
let pool;
function getPool() {
if (!pool) {
pool = mysql.createPool({
host: process.env.DB_HOST,
port: process.env.DB_PORT || 3306,
user: process.env.DB_USER || 'root',
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME || 'tcb',
waitForConnections: true,
connectionLimit: 5,
queueLimit: 0,
acquireTimeout: 60000,
timeout: 60000,
charset: 'utf8mb4'
});
}
return pool;
}
exports.main = async (event, context) => {
try {
const pool = getPool();
const connection = await pool.getConnection();
try {
const [rows] = await connection.query('SELECT * FROM persons LIMIT 10');
return { success: true, data: rows };
} finally {
connection.release();
}
} catch (error) {
console.error('数据库操作失败:', error);
return { success: false, error: error.message };
}
};
步骤 5:配置环境变量
在云函数的「环境变量」中配置:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
DB_HOST | 数据库地址 | gz-xxxxx.mysql.tencentcdb.com |
DB_PORT | 端口 | 3306 |
DB_USER | 用户名 | root |
DB_PASSWORD | 密码 | your_password |
DB_NAME | 数据库名称 | tcb |
使用连接字符串
也可以配置 CONNECTION_URI 环境变量,直接使用完整连接字符串
步骤 6:测试连接
部署后,在云函数控制台点击「测试」按钮,如果连接成功,将返回数据库中的记录。
连接方式详解
配置差异对比
三种连接方式的核心差异仅在于网络配置,代码实现完全相同:
| 连 接方式 | 网络配置 | 数据库地址 | 适用场景 |
|---|---|---|---|
| 云开发 MySQL | 配置 VPC(数据库所在 VPC) | 内网地址 | 云开发项目首选 |
| 内网互联 | 开启内网互联(目标 VPC) | 内网地址 | 已有腾讯云 MySQL |
| 公网连接 | 无需配置 | 公网地址 | 第三方或自建数据库 |
配置建议
- 云开发 MySQL:直接使用「快速开始」即可,最简单
- 腾讯云 MySQL:仅需调整网络配置为「内网互联」,其他步骤相同
- 公网 MySQL:无需网络配置,但需确保数据库已开启公网访问