关系型数据库(MySQL)
自 v5.0.0 起 新增此模块。通过 app.mysql 访问,提供云开发托管 MySQL(Serverless CynosDB)数据库的完整管理能力。
初始化
import CloudBase from '@cloudbase/manager-node'
const app = CloudBase.init({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
})
const mysql = app.mysql
createMySQL
1. 接口描述
接口功能:为当前环境开通 MySQL 数据库
接口声明:app.mysql.createMySQL(options?): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| DbInstanceType | 否 | String | Db 类型,固定值 MYSQL |
| MysqlVersion | 否 | String | MySQL 版本,如 5.7 |
| VpcId | 否 | String | VPC ID |
| SubnetId | 否 | String | 子网 ID |
| LowerCaseTableNames | 否 | String | 表名大小写:0(区分)/ 1(不区分,默认) |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
| Data.TaskId | String | 异步开通任务 ID |
4. 示例代码
const { Data } = await mysql.createMySQL({ MysqlVersion: '5.7' })
console.log('开通任务 ID:', Data.TaskId)
describeCreateResult
1. 接口描述
接口功能:查询 MySQL 开通状态
接口声明:app.mysql.describeCreateResult(options?): Promise<Object>
2. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Data.Status | String | notexist(未开通)/ success(已开通) |
| Data.FailReason | String | 失败原因(失败时有值) |
| Data.FreezeStatus | Boolean | 是否冻结 |
describeClusterDetail
1. 接口描述
接口功能:查询 MySQL 集群详情(数据库信息、网络配置等)
接口声明:app.mysql.describeClusterDetail(): Promise<Object>
2. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Data.DbClusterId | String | 集群 ID |
| Data.DbInfo | Object | 数据库状态、版本、存储等信息 |
| Data.NetInfo | Object | 内外网 IP、VPC 等网络信息 |
destroyMySQL
1. 接口描述
接口功能:销毁当前环境的 MySQL 实例
接口声明:app.mysql.destroyMySQL(): Promise<Object>
2. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Data.IsSuccess | Boolean | 是否成功 |
| Data.TaskId | String | 任务 ID |
| Data.TaskName | String | 任务名称 |
describeTaskStatus
1. 接口描述
接口功能:查询 MySQL 异步任务状态
接口声明:app.mysql.describeTaskStatus(options?): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| TaskId | 否 | String | 任务 ID |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Status | String | 任务状态,如 SUCCESS / FAILED |
| StatusDesc | String | 状态描述 |
runSql
1. 接口描述
接口功能:直接执行 SQL 语句(SELECT/INSERT/UPDATE/DELETE 等)
接口声明:app.mysql.runSql(options): Promise<IRunSqlResult>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Sql | 是 | String | 要执行的 SQL 语句 |
| DbInstance | 否 | Object | 数据库连接器实例信息 |
| ReadOnly | 否 | Boolean | 只读模式(仅允许 SELECT/WITH/SHOW/DESCRIBE/EXPLAIN 语句) |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Items | String[] | 查询结果行(每行为 JSON 字符串) |
| Infos | String[] | 列元数据 |
| RowsAffected | Number | 受影响的行数 |
| RequestId | String | 请求唯一标识 |
4. 示例代码
const res = await mysql.runSql({
Sql: 'SELECT * FROM users WHERE id = 1'
})
const rows = res.Items.map(item => JSON.parse(item))
console.log(rows)
openWan / closeWan
1. 接口描述
接口功能:开启/关闭实例的公网访问
接口声明:
app.mysql.openWan(options?): Promise<Object>app.mysql.closeWan(options?): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| InstanceId | 否 | String | 实例 ID |
| InstanceGroupId | 否 | String | 实例组 ID |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| FlowId | Number | 任务流 ID |
| RequestId | String | 请求唯一标识 |
describeClusterInstanceGroups
1. 接口描述
接口功能:查询集群的实例组列表(含各实例组的网络信息和实例列表)
接口声明:app.mysql.describeClusterInstanceGroups(): Promise<Object>
2. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TotalCount | Number | 实例组总数 |
| InstanceGroupInfoList | Array | 实例组列表,每项含 Vip/Vport/InstanceSet 等 |
describeInstances
1. 接口描述
接口功能:查询实例列表,支持多维度过滤
接口声明:app.mysql.describeInstances(options?): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Limit | 否 | Number | 返回数量,默认 20,取值 (0,100] |
| Offset | 否 | Number | 偏移量,默认 0 |
| OrderBy | 否 | String | 排序字段:CREATETIME / PERIODENDTIME |
| OrderByType | 否 | String | 排序方式:ASC / DESC |
| Filters | 否 | IQueryFilter[] | 过滤条件,各条件间 AND 关系 |
| Status | 否 | String | 实例状态:creating / running / isolating / isolated 等 |
| InstanceIds | 否 | String[] | 按实例 ID 列表过滤 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TotalCount | Number | 实例总数 |
| InstanceSet | Array | 实例详情列表 |
describeInstanceDetail
1. 接口描述
接口功能:查询单个实例的完整详情
接口声明:app.mysql.describeInstanceDetail(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| InstanceId | 是 | String | 实例 ID |
3. 返回结果
返回 Detail 对象,包含实例 CPU/内存/存储、网络、状态、版本等全量信息(见 ICynosdbInstanceFullDetail)。
restartInstance
1. 接口描述
接口功能:重启指定实例
接口声明:app.mysql.restartInstance(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| InstanceId | 是 | String | 实例 ID |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| FlowId | Number | 异步任务流 ID |
| RequestId | String | 请求唯一标识 |
upgradeInstance
1. 接口描述
接口功能:变更实例规格(CPU / 内存)
接口声明:app.mysql.upgradeInstance(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| InstanceId | 是 | String | 实例 ID |
| Cpu | 是 | Number | 目标 CPU 核数 |
| Memory | 是 | Number | 目标内存(GB) |
| UpgradeType | 是 | String | 升级时机:upgradeImmediate(立即)/ upgradeInMaintain(维护窗口) |
| UpgradeMode | 否 | String | 升级模式:NormalUpgrade(普通)/ FastUpgrade(极速) |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TranId | String | 冻结流水 ID |
| BigDealIds | String[] | 大订单号 |
| DealNames | String[] | 订单号 |
describeInstanceSlowQueries
1. 接口描述
接口功能:查询实例慢查 询日志
接口声明:app.mysql.describeInstanceSlowQueries(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| InstanceId | 是 | String | 实例 ID |
| StartTime | 否 | String | 起始时间 |
| EndTime | 否 | String | 结束时间 |
| Limit | 否 | Number | 返回数量 |
| Offset | 否 | Number | 偏移量 |
| Username | 否 | String | 按用户名过滤 |
| Host | 否 | String | 按客户端 Host 过滤 |
| Database | 否 | String | 按数据库名过滤 |
| OrderBy | 否 | String | 排序字段:QueryTime / LockTime / RowsExamined / RowsSent |
| OrderByType | 否 | String | 排序方式:asc / desc |
| SqlText | 否 | String | SQL 语句关键字过滤 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TotalCount | Number | 总条数 |
| SlowQueries | Array | 慢查询记录列表(含 SQL 语句、耗时、扫描行数等) |
describeInstanceErrorLogs
1. 接口描述
接口功能:查询实例错误日志
接口声明:app.mysql.describeInstanceErrorLogs(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| InstanceId | 是 | String | 实例 ID |
| StartTime | 否 | String | 开始时间 |
| EndTime | 否 | String | 结束时间 |
| Limit | 否 | Number | 返回数量 |
| Offset | 否 | Number | 偏移量 |
| OrderBy | 否 | String | 排序字段,支持 Timestamp |
| OrderByType | 否 | String | 排序方式:ASC / DESC |
| LogLevels | 否 | String[] | 日志级别:error / warning / note |
| KeyWords | 否 | String[] | 关键字过滤(模糊搜索) |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TotalCount | Number | 总条数 |
| ErrorLogs | Array | 错误日志列表(含 Content/Level/Timestamp) |
describeClusterDatabases
1. 接口描述
接口功能:查询集群下的数据库列表
接口声明:app.mysql.describeClusterDatabases(options?): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Offset | 否 | Number | 偏移量 |
| Limit | 否 | Number | 返回数量 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TotalCount | Number | 总数 |
| Databases | String[] | 数据库名称列表 |
describeClusterDatabaseTables
1. 接口描述
接口功能:查询指定数据库下的表列表
接口声明:app.mysql.describeClusterDatabaseTables(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Db | 是 | String | 数据库名 |
| Offset | 否 | Number | 偏移量 |
| Limit | 否 | Number | 返回数量 |
| TableType | 否 | String | 表类型:view(视图)/ base_table(基本表)/ all(全部,默认) |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| TotalCount | Number | 总数 |
| Tables | String[] | 表名称列表 |
4. 示例代码
const { Databases } = await mysql.describeClusterDatabases()
for (const db of Databases) {
const { Tables } = await mysql.describeClusterDatabaseTables({ Db: db })
console.log(`${db}: ${Tables.join(', ')}`)
}
createAccounts
1. 接口描述
接口功能:批量创建数据库账号
接口声明:app.mysql.createAccounts(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Accounts | 是 | INewAccount[] | 新建账号列表 |
INewAccount
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| AccountName | 是 | String | 账号名称 |
| AccountPassword | 是 | String | 密码(8-64位,含大小写字母、数字和符号) |
| Host | 是 | String | 允许访问的主机(IP 或 %) |
| Description | 否 | String | 账号描述 |
| MaxUserConnections | 否 | Number | 最大连接数限制 |
deleteAccounts
1. 接口描述
接口功能:批量删除数据库账号
接口声明:app.mysql.deleteAccounts(options): Promise<Object>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Accounts | 否 | IInputAccount[] | 要删除的账号列表({ AccountName, Host? } |