调用 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 };
}
};