跳到主要内容

关系型数据库(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. 输入参数

字段必填类型说明
DbInstanceTypeStringDb 类型,固定值 MYSQL
MysqlVersionStringMySQL 版本,如 5.7
VpcIdStringVPC ID
SubnetIdString子网 ID
LowerCaseTableNamesString表名大小写:0(区分)/ 1(不区分,默认)

3. 返回结果

字段类型说明
RequestIdString请求唯一标识
Data.TaskIdString异步开通任务 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.StatusStringnotexist(未开通)/ success(已开通)
Data.FailReasonString失败原因(失败时有值)
Data.FreezeStatusBoolean是否冻结

describeClusterDetail

1. 接口描述

接口功能:查询 MySQL 集群详情(数据库信息、网络配置等)

接口声明:app.mysql.describeClusterDetail(): Promise<Object>

2. 返回结果

字段类型说明
Data.DbClusterIdString集群 ID
Data.DbInfoObject数据库状态、版本、存储等信息
Data.NetInfoObject内外网 IP、VPC 等网络信息

destroyMySQL

1. 接口描述

接口功能:销毁当前环境的 MySQL 实例

接口声明:app.mysql.destroyMySQL(): Promise<Object>

2. 返回结果

字段类型说明
Data.IsSuccessBoolean是否成功
Data.TaskIdString任务 ID
Data.TaskNameString任务名称

describeTaskStatus

1. 接口描述

接口功能:查询 MySQL 异步任务状态

接口声明:app.mysql.describeTaskStatus(options?): Promise<Object>

2. 输入参数

字段必填类型说明
TaskIdString任务 ID

3. 返回结果

字段类型说明
StatusString任务状态,如 SUCCESS / FAILED
StatusDescString状态描述

runSql

1. 接口描述

接口功能:直接执行 SQL 语句(SELECT/INSERT/UPDATE/DELETE 等)

接口声明:app.mysql.runSql(options): Promise<IRunSqlResult>

2. 输入参数

字段必填类型说明
SqlString要执行的 SQL 语句
DbInstanceObject数据库连接器实例信息
ReadOnlyBoolean只读模式(仅允许 SELECT/WITH/SHOW/DESCRIBE/EXPLAIN 语句)

3. 返回结果

字段类型说明
ItemsString[]查询结果行(每行为 JSON 字符串)
InfosString[]列元数据
RowsAffectedNumber受影响的行数
RequestIdString请求唯一标识

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. 输入参数

字段必填类型说明
InstanceIdString实例 ID
InstanceGroupIdString实例组 ID

3. 返回结果

字段类型说明
FlowIdNumber任务流 ID
RequestIdString请求唯一标识

describeClusterInstanceGroups

1. 接口描述

接口功能:查询集群的实例组列表(含各实例组的网络信息和实例列表)

接口声明:app.mysql.describeClusterInstanceGroups(): Promise<Object>

2. 返回结果

字段类型说明
TotalCountNumber实例组总数
InstanceGroupInfoListArray实例组列表,每项含 Vip/Vport/InstanceSet

describeInstances

1. 接口描述

接口功能:查询实例列表,支持多维度过滤

接口声明:app.mysql.describeInstances(options?): Promise<Object>

2. 输入参数

字段必填类型说明
LimitNumber返回数量,默认 20,取值 (0,100]
OffsetNumber偏移量,默认 0
OrderByString排序字段:CREATETIME / PERIODENDTIME
OrderByTypeString排序方式:ASC / DESC
FiltersIQueryFilter[]过滤条件,各条件间 AND 关系
StatusString实例状态:creating / running / isolating / isolated
InstanceIdsString[]按实例 ID 列表过滤

3. 返回结果

字段类型说明
TotalCountNumber实例总数
InstanceSetArray实例详情列表

describeInstanceDetail

1. 接口描述

接口功能:查询单个实例的完整详情

接口声明:app.mysql.describeInstanceDetail(options): Promise<Object>

2. 输入参数

字段必填类型说明
InstanceIdString实例 ID

3. 返回结果

返回 Detail 对象,包含实例 CPU/内存/存储、网络、状态、版本等全量信息(见 ICynosdbInstanceFullDetail)。


restartInstance

1. 接口描述

接口功能:重启指定实例

接口声明:app.mysql.restartInstance(options): Promise<Object>

2. 输入参数

字段必填类型说明
InstanceIdString实例 ID

3. 返回结果

字段类型说明
FlowIdNumber异步任务流 ID
RequestIdString请求唯一标识

upgradeInstance

1. 接口描述

接口功能:变更实例规格(CPU / 内存)

接口声明:app.mysql.upgradeInstance(options): Promise<Object>

2. 输入参数

字段必填类型说明
InstanceIdString实例 ID
CpuNumber目标 CPU 核数
MemoryNumber目标内存(GB)
UpgradeTypeString升级时机:upgradeImmediate(立即)/ upgradeInMaintain(维护窗口)
UpgradeModeString升级模式:NormalUpgrade(普通)/ FastUpgrade(极速)

3. 返回结果

字段类型说明
TranIdString冻结流水 ID
BigDealIdsString[]大订单号
DealNamesString[]订单号

describeInstanceSlowQueries

1. 接口描述

接口功能:查询实例慢查询日志

接口声明:app.mysql.describeInstanceSlowQueries(options): Promise<Object>

2. 输入参数

字段必填类型说明
InstanceIdString实例 ID
StartTimeString起始时间
EndTimeString结束时间
LimitNumber返回数量
OffsetNumber偏移量
UsernameString按用户名过滤
HostString按客户端 Host 过滤
DatabaseString按数据库名过滤
OrderByString排序字段:QueryTime / LockTime / RowsExamined / RowsSent
OrderByTypeString排序方式:asc / desc
SqlTextStringSQL 语句关键字过滤

3. 返回结果

字段类型说明
TotalCountNumber总条数
SlowQueriesArray慢查询记录列表(含 SQL 语句、耗时、扫描行数等)

describeInstanceErrorLogs

1. 接口描述

接口功能:查询实例错误日志

接口声明:app.mysql.describeInstanceErrorLogs(options): Promise<Object>

2. 输入参数

字段必填类型说明
InstanceIdString实例 ID
StartTimeString开始时间
EndTimeString结束时间
LimitNumber返回数量
OffsetNumber偏移量
OrderByString排序字段,支持 Timestamp
OrderByTypeString排序方式:ASC / DESC
LogLevelsString[]日志级别:error / warning / note
KeyWordsString[]关键字过滤(模糊搜索)

3. 返回结果

字段类型说明
TotalCountNumber总条数
ErrorLogsArray错误日志列表(含 Content/Level/Timestamp

describeClusterDatabases

1. 接口描述

接口功能:查询集群下的数据库列表

接口声明:app.mysql.describeClusterDatabases(options?): Promise<Object>

2. 输入参数

字段必填类型说明
OffsetNumber偏移量
LimitNumber返回数量

3. 返回结果

字段类型说明
TotalCountNumber总数
DatabasesString[]数据库名称列表

describeClusterDatabaseTables

1. 接口描述

接口功能:查询指定数据库下的表列表

接口声明:app.mysql.describeClusterDatabaseTables(options): Promise<Object>

2. 输入参数

字段必填类型说明
DbString数据库名
OffsetNumber偏移量
LimitNumber返回数量
TableTypeString表类型:view(视图)/ base_table(基本表)/ all(全部,默认)

3. 返回结果

字段类型说明
TotalCountNumber总数
TablesString[]表名称列表

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. 输入参数

字段必填类型说明
AccountsINewAccount[]新建账号列表

INewAccount

字段必填类型说明
AccountNameString账号名称
AccountPasswordString密码(8-64位,含大小写字母、数字和符号)
HostString允许访问的主机(IP 或 %
DescriptionString账号描述
MaxUserConnectionsNumber最大连接数限制

deleteAccounts

1. 接口描述

接口功能:批量删除数据库账号

接口声明:app.mysql.deleteAccounts(options): Promise<Object>

2. 输入参数

字段必填类型说明
AccountsIInputAccount[]要删除的账号列表({ AccountName, Host? }

describeAccounts

1. 接口描述

接口功能:查询数据库账号列表

接口声明:app.mysql.describeAccounts(options?): Promise<Object>

2. 输入参数

字段必填类型说明
AccountNamesString[]按账号名过滤
HostsString[]按 Host 过滤
LimitNumber返回数量
OffsetNumber偏移量
AccountRegularString模糊匹配关键字(支持正则)

3. 返回结果

字段类型说明
TotalCountNumber账号总数
AccountSetArray账号信息列表(含 AccountName/Host/CreateTime 等)

describeAccountPrivileges

1. 接口描述

接口功能:查询账号在指定数据库/表上的权限

接口声明:app.mysql.describeAccountPrivileges(options): Promise<Object>

2. 输入参数

字段必填类型说明
AccountNameString账号名
HostString主机
DbString数据库名,* 表示全局权限
TypeString对象类型:table(表级)/ *(数据库/全局级)
TableNameString表名(Type='table' 时必填)

3. 返回结果

字段类型说明
PrivilegesString[]权限列表

describeAccountAllGrantPrivileges

1. 接口描述

接口功能:查询账号所有已授权的权限(全局、数据库、表)

接口声明:app.mysql.describeAccountAllGrantPrivileges(options): Promise<Object>

2. 输入参数

字段必填类型说明
AccountIInputAccount{ AccountName, Host? }

3. 返回结果

字段类型说明
PrivilegeStatementsString[]权限语句
GlobalPrivilegesString[]全局权限列表
DatabasePrivilegesArray数据库权限
TablePrivilegesArray表权限

modifyAccountPrivileges

1. 接口描述

接口功能:修改账号权限

接口声明:app.mysql.modifyAccountPrivileges(options): Promise<Object>

2. 输入参数

字段必填类型说明
AccountIInputAccount账号信息
GlobalPrivilegesString[]全局权限列表
DatabasePrivilegesArray数据库级权限
TablePrivilegesArray表级权限

modifyAccountDescription

接口声明:app.mysql.modifyAccountDescription(options): Promise<Object>

修改账号描述信息。参数:AccountName(必填)、Description(必填)、Host(可选)。


modifyAccountHost

接口声明:app.mysql.modifyAccountHost(options): Promise<Object>

修改账号允许访问的 Host。参数:AccountIInputAccount,必填)、NewHost(新 Host,必填)。


modifyAccountParams

接口声明:app.mysql.modifyAccountParams(options): Promise<Object>

修改账号配置参数。参数:Account(必填)、AccountParamsIAccountParamItem[],必填,每项含 ParamNameParamValue)。


resetAccountPassword

1. 接口描述

接口功能:重置账号密码

接口声明:app.mysql.resetAccountPassword(options): Promise<Object>

2. 输入参数

字段必填类型说明
AccountNameString账号名称
AccountPasswordString新密码
HostString主机,默认 %

createBackup

1. 接口描述

接口功能:手动创建数据库备份

接口声明:app.mysql.createBackup(options?): Promise<Object>

2. 输入参数

字段必填类型说明
BackupTypeString备份类型:logic(逻辑)/ snapshot(物理,默认)
BackupDatabasesString[]指定备份的数据库(仅 logic 类型有效)
BackupTablesArray指定备份的表(仅 logic 类型有效)
BackupNameString备份备注名

3. 返回结果

字段类型说明
FlowIdNumber备份任务流 ID

deleteBackup

1. 接口描述

接口功能:删除备份文件

接口声明:app.mysql.deleteBackup(options): Promise<Object>

2. 输入参数

字段必填类型说明
BackupIdsNumber[]备份 ID 列表(推荐)
SnapshotIdListNumber[]快照 ID 列表(旧版,不推荐)

modifyBackupConfig

1. 接口描述

接口功能:修改备份策略配置(备份时间窗口、保留时长、备份频率)

接口声明:app.mysql.modifyBackupConfig(options): Promise<Object>

2. 输入参数

字段必填类型说明
BackupTimeBegNumber全备开始时间(秒,如 0=0:00, 3600=1:00)
BackupTimeEndNumber全备结束时间
ReserveDurationNumber备份保留时长(秒,如七天=604800
BackupFreqString[]长度为 7 的数组,对应周一到周日,full/increment
BackupTypeString备份类型

describeBackupList

1. 接口描述

接口功能:查询备份列表

接口声明:app.mysql.describeBackupList(options?): Promise<Object>

2. 输入参数

字段必填类型说明
LimitNumber返回数量,取值 (0,100]
OffsetNumber偏移量
BackupTypeStringsnapshot(快照)/ logic(逻辑)
BackupMethodStringauto(自动)/ manual(手动)
StartTimeString备份开始时间过滤
EndTimeString备份结束时间过滤
BackupNamesString[]备注名过滤(模糊)

3. 返回结果

字段类型说明
TotalCountNumber总条数
BackupListArray备份文件列表(含 BackupId/BackupType/BackupStatus/StartTime/FinishTime 等)

describeBackupDownloadUrl

1. 接口描述

接口功能:获取备份文件的下载地址

接口声明:app.mysql.describeBackupDownloadUrl(options): Promise<Object>

2. 输入参数

字段必填类型说明
BackupIdNumber备份 ID

3. 返回结果

字段类型说明
DownloadUrlString备份下载地址

4. 示例代码

const { BackupList } = await mysql.describeBackupList({ Limit: 5 })
const latest = BackupList[0]
const { DownloadUrl } = await mysql.describeBackupDownloadUrl({ BackupId: latest.BackupId })
console.log('下载地址:', DownloadUrl)

rollBackCluster

1. 接口描述

接口功能:将集群回档到指定时间点或备份文件

接口声明:app.mysql.rollBackCluster(options): Promise<Object>

2. 输入参数

字段必填类型说明
RollbackStrategyString回档策略:timeRollback(按时间点)/ snapRollback(按备份文件)
RollbackIdNumber备份文件 ID(snapRollback 时必填)
ExpectTimeString目标时间点(timeRollback 时必填)
RollbackDatabasesArray回档数据库列表(含 OldDatabase / NewDatabase
RollbackTablesArray回档表列表(含 DatabaseTables
RollbackModeString时间点回档模式:full(普通)/ db(快速)/ table(极速)

3. 返回结果

字段类型说明
FlowIdNumber回档任务流 ID
RequestIdString请求唯一标识

4. 示例代码

// 按时间点回档(将 users 表回档,写入新表 users_restore)
const { FlowId } = await mysql.rollBackCluster({
RollbackStrategy: 'timeRollback',
ExpectTime: '2025-01-01 12:00:00',
RollbackTables: [{
Database: 'mydb',
Tables: [{ OldTable: 'users', NewTable: 'users_restore' }]
}],
RollbackMode: 'table'
})
console.log('回档任务流 ID:', FlowId)

describeTasks

1. 接口描述

接口功能:查询 MySQL 异步任务列表

接口声明:app.mysql.describeTasks(options?): Promise<Object>

2. 输入参数

字段必填类型说明
StartTimeBeginString任务开始时间下限
StartTimeEndString任务开始时间上限
FiltersIQueryFilter[]过滤条件
LimitNumber返回数量
OffsetNumber偏移量

3. 返回结果

字段类型说明
TotalCountNumber总条数
TaskListArray任务列表(含 ID/Status/TaskType/StartTime 等)