跳到主要内容

关系型数据库(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否StringDb 类型,固定值 MYSQL
MysqlVersion否StringMySQL 版本,如 5.7
VpcId否StringVPC ID
SubnetId否String子网 ID
LowerCaseTableNames否String表名大小写: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. 输入参数​

字段必填类型说明
TaskId否String任务 ID

3. 返回结果​

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

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. 返回结果​

字段类型说明
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. 输入参数​

字段必填类型说明
InstanceId否String实例 ID
InstanceGroupId否String实例组 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. 输入参数​

字段必填类型说明
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. 返回结果​

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

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. 返回结果​

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

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. 返回结果​

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

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否StringSQL 语句关键字过滤

3. 返回结果​

字段类型说明
TotalCountNumber总条数
SlowQueriesArray慢查询记录列表(含 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. 返回结果​

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

describeClusterDatabases​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
Offset否Number偏移量
Limit否Number返回数量

3. 返回结果​

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

describeClusterDatabaseTables​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
Db是String数据库名
Offset否Number偏移量
Limit否Number返回数量
TableType否String表类型: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. 输入参数​

字段必填类型说明
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? })

describeAccounts​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
AccountNames否String[]按账号名过滤
Hosts否String[]按 Host 过滤
Limit否Number返回数量
Offset否Number偏移量
AccountRegular否String模糊匹配关键字(支持正则)

3. 返回结果​

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

describeAccountPrivileges​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
AccountName是String账号名
Host是String主机
Db是String数据库名,* 表示全局权限
Type是String对象类型:table(表级)/ *(数据库/全局级)
TableName否String表名(Type='table' 时必填)

3. 返回结果​

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

describeAccountAllGrantPrivileges​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
Account是IInputAccount{ AccountName, Host? }

3. 返回结果​

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

modifyAccountPrivileges​

1. 接口描述​

接口功能:修改账号权限

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

2. 输入参数​

字段必填类型说明
Account是IInputAccount账号信息
GlobalPrivileges否String[]全局权限列表
DatabasePrivileges否Array数据库级权限
TablePrivileges否Array表级权限

modifyAccountDescription​

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

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


modifyAccountHost​

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

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


modifyAccountParams​

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

修改账号配置参数。参数:Account(必填)、AccountParams(IAccountParamItem[],必填,每项含 ParamName 和 ParamValue)。


resetAccountPassword​

1. 接口描述​

接口功能:重置账号密码

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

2. 输入参数​

字段必填类型说明
AccountName是String账号名称
AccountPassword是String新密码
Host否String主机,默认 %

createBackup​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
BackupType否String备份类型:logic(逻辑)/ snapshot(物理,默认)
BackupDatabases否String[]指定备份的数据库(仅 logic 类型有效)
BackupTables否Array指定备份的表(仅 logic 类型有效)
BackupName否String备份备注名

3. 返回结果​

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

deleteBackup​

1. 接口描述​

接口功能:删除备份文件

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

2. 输入参数​

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

modifyBackupConfig​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
BackupTimeBeg否Number全备开始时间(秒,如 0=0:00, 3600=1:00)
BackupTimeEnd否Number全备结束时间
ReserveDuration否Number备份保留时长(秒,如七天=604800)
BackupFreq否String[]长度为 7 的数组,对应周一到周日,full/increment
BackupType否String备份类型

describeBackupList​

1. 接口描述​

接口功能:查询备份列表

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

2. 输入参数​

字段必填类型说明
Limit否Number返回数量,取值 (0,100]
Offset否Number偏移量
BackupType否Stringsnapshot(快照)/ logic(逻辑)
BackupMethod否Stringauto(自动)/ manual(手动)
StartTime否String备份开始时间过滤
EndTime否String备份结束时间过滤
BackupNames否String[]备注名过滤(模糊)

3. 返回结果​

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

describeBackupDownloadUrl​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
BackupId是Number备份 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. 输入参数​

字段必填类型说明
RollbackStrategy是String回档策略:timeRollback(按时间点)/ snapRollback(按备份文件)
RollbackId否Number备份文件 ID(snapRollback 时必填)
ExpectTime否String目标时间点(timeRollback 时必填)
RollbackDatabases否Array回档数据库列表(含 OldDatabase / NewDatabase)
RollbackTables否Array回档表列表(含 Database 及 Tables)
RollbackMode否String时间点回档模式: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. 输入参数​

字段必填类型说明
StartTimeBegin否String任务开始时间下限
StartTimeEnd否String任务开始时间上限
Filters否IQueryFilter[]过滤条件
Limit否Number返回数量
Offset否Number偏移量

3. 返回结果​

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