DANGER

本页由 AI 工具参考代码编写,尚未经过人工审核,内容仅供参考。如果无法解决问题或需要协助部署,可邮箱联系:kuohu233@qq.com

配置 MySQL Serverless 数据库

概述

阿里云 MySQL Serverless(RDS MySQL Serverless)是弹性伸缩的关系型数据库服务。它根据实际负载自动调整计算资源,低负载时成本极低,同时保留了传统 MySQL 的全部功能。

与 SQLite 的区别

对比项SQLiteMySQL Serverless
类型嵌入式文件数据库独立数据库服务
持久化依赖函数计算 /tmp 目录,可能丢失数据持久化到云盘,不丢失
备份需手动备份自动备份,支持恢复到任意时间点
并发单写锁,高并发写入性能受限支持高并发读写
弹性根据负载自动伸缩
成本免费按使用量计费

你需要准备

  • 阿里云账号(已实名认证)
  • 已开通 RDS 服务

步骤

1. 创建 RDS MySQL Serverless 实例

  1. 登录 阿里云 RDS 控制台
  2. 点击「创建实例」
  3. 选择以下配置:
配置项推荐值说明
数据库类型MySQL
版本8.0推荐最新稳定版
系列基础系列(Serverless)Serverless 规格
存储类型ESSD PL1(或 ESSD AutoPL)兼顾性能和成本
资源扩缩范围(RCU)0.5 - 4最小 0.5 RCU,最大按需调整

💡 RCU(RDS Capacity Unit)是 MySQL Serverless 的计算单位。0.5 RCU 近似于 1 核 2GB 的 50% 性能,闲时几乎不消耗资源。高峰期自动扩展到设定的最大值。

  1. 设置实例名称,如 astra-schedule-db
  2. 点击「立即购买」

2. 创建数据库

  1. 实例创建完成后,进入实例详情页
  2. 点击左侧「数据库管理」→「创建数据库」
  3. 填写:
配置项
数据库名astra_schedule
字符集utf8mb4
授权账号稍后创建

3. 创建数据库账号

  1. 点击左侧「账号管理」→「创建账号」
  2. 填写:
配置项
数据库账号astra_user
账号类型高权限账号
密码设置一个复杂密码(至少包含大小写字母、数字、特殊字符)
  1. 创建完成后,记录账号名和密码(后续配置后端需要)

4. 配置白名单

默认情况下,数据库仅允许白名单内的 IP 访问。需要添加函数计算的出口 IP 或配置内网访问:

方式一(推荐):内网访问

函数计算与 RDS 实例在同一 VPC 内时,可以直接通过内网访问,无需配置白名单。

  1. 进入 RDS 实例详情页,记录「内网地址」和「VPC ID」
  2. 确保函数计算使用同一 VPC(参见后端部署文档中的 VPC 配置)

方式二:公网访问

如果选择公网访问(不推荐生产环境),需要:

  1. 进入 RDS 实例详情页,点击「数据库连接」
  2. 开通「外网地址」
  3. 在「白名单与安全组」中添加函数计算的出口 IP

5. 获取连接信息

进入 RDS 实例详情页的「数据库连接」页面,记录以下信息:

信息示例值用途
内网地址rm-xxxxxx.mysql.rds.aliyuncs.com后端配置 db.host
端口3306后端配置 db.port
数据库名astra_schedule后端配置 db.name
账号astra_user后端配置 db.user
密码你设置的密码后端配置 db.pass

6. 后端配置文件对应

以上信息对应后端 config.toml 中的数据库配置:

[db]
type = "mysql"
host = "rm-xxxxxx.mysql.rds.aliyuncs.com"
port = 3306
user = "astra_user"
pass = "YOUR_DB_PASSWORD"
name = "astra_schedule"

自动伸缩说明

MySQL Serverless 的核心优势是弹性伸缩

  • 闲时(如夜间、周末、寒暑假):自动缩容到最低 0.5 RCU,几乎不产生费用
  • 忙时(如上课期间大量客户端同时拉取配置):自动扩容到设定的最大值
  • 缩容/扩容过程:秒级完成,应用无感知

自动备份说明

RDS MySQL Serverless 自动执行备份:

  • 全量备份:每天一次,保留 7 天(可延长到 730 天)
  • 日志备份:实时备份,支持恢复到任意时间点
  • 恢复方式:通过控制台一键恢复到新实例,或使用克隆功能

⚠️ 建议将备份保留期设置为至少 7 天,以应对误操作等意外情况。

成本参考

MySQL Serverless 按实际使用的 RCU 和存储量计费:

负载场景平均 RCU月费用(估算)
极低负载(几乎无请求)~0.5 RCU约 30 元
中等负载(数百学生日常使用)~1-2 RCU约 60-120 元
高负载(多校共用、频繁读写)~2-4 RCU约 120-240 元

💡 以上为数据库部分的费用估算,不含函数计算。实际费用以阿里云账单为准。